Вы находитесь на странице: 1из 4

List Of Methods

Response Boolean Boolean UserStatusUpdateResponse Boolean Boolean Boolean Boolean Boolean List<String> List<UserAreaOfInterest> String Signatures ChangeVisibilityStatus(string contactCRMId, Boolean isVisible) UpdateStatus(string ContactCRMId, string StatusMessage) GetPastStatusUpdates(string ContactCRMId) DeleteStatus(List<UserStatusMessage> StatusMessages) UpdateBiography(string contactCRMId, string biography) UpdateAreasOfInterest(string ContactCRMId, List<UserAreaOfInterest> UserAreasOfInterests) UpdateProfilePicture(string ContactCRMId, Image ProfileImage) AnswerProgramRelatedQuestion(UserProgramAnswers userAnswers) GetNotifications(string contactCRMId) GetAreaOfInterest(string contactCRMId, string programID) GetProfileCompletion(string contactCRMId)

String Boolean

GetCurrentStatus (String ContactCrmId) DeleteNotification(String CrmContctId, String Type)

Boolean Boolean

RemoveAreaOfInterest(string contactCRMId, string programId, int topicID) UpdateNewTopicChoice(string contactCRMId, string programId, List<Integer> topicIds, TopicChoiceType topicChoice)

GetAreaOfInterest will have Program Question along with Answer for that user We would not be needing RemoveAreaOfInterest.. and UpdateNewTopicChoice..

Notifications
There are two Approaches to implement it 1) Discover the list of notifications on the fly when requested. a. Pros i. Events generating these notifications will not be responsible for adding Notification and will not take the performance hit b. Cons i. As notifications will be discovered when requested, response time will be slow . ii. Will have to maintain a separate queue for notifications not tied to an User events like Changing Terms and Condition . 2) Maintain a persistent Notification queue where notifications are added when events occur. a. Pros i. Faster delivery of Notifications when requested ii. Gives us a unified mechanism to push Notification of any type which may or may not be tied to any User events. b. Cons i. Events like adding resources etc will take the hit of adding notification to the queue. ii. The Queue can get huge and will have high traffic We will Go with option 2 unless someone has other sugessition .Please feel free to email me your thoughts . ..

We will maintain a Notification Queue where all the publishers will add notification based on the events. Each notification will be a pointer to actual event. Every notification will have basically following metadata

1) Name of the Publisher (RESOURCE, CONVERSATIONS ect) 2) Event which generated the notification (ADD , DELETE etc) 3) Primary Key of Publisher . 4) Primary Key of USER (PK_User Id) not ContactCrmId .

Following are the Publisher


1) STATUS 2) RESOURCES 3) CONVERSATIONS 4) Alerts 5) MyProfile :- % completion and if Area of Interest has changed .

tbl_Alerts to store Alerts (General Notifications) Database Table tbl_Alerts PK_AlertId Description FK_ProgramId CreationDateTime Active

Primary Key Details of the Alert, (ex:- T&C, Area of Interest, ) Program specific alerts Date and time Set active/inactive

Method List<Alerts> GetProgramNotifications (int programId) In Out List Of Alerts which with details Description It will return List of General Notifications for specific programs Structure of Alerts Class ID Description Program

Int String Program object

We will miss the details of which new Resources are added but Conversation is designed to identify newly added conversations for a user. List<Notifications> <NameValue>GetNotificationCount ( String ContactCrmId) In Out List Of Notifications NameValue which include Publisher CONSTANTS and Count

Description It will return Count of Notifications Group by Publisher and Type

Boolean DeleteNotification ( String ContactCrmId , String Type) In 1) CrmContactId 2) Publisher Type Status

Out

Description All delete will be a single transaction . Returns true if all successes else rollback and return.

List<UserAreaOfInterest> GetAreaOfInterest(string contactCRMId, string programCode)

In

1) CrmContactId 2) ProgramCode i.e WebsiteId List of Areas of Interest along with UsersSelection .This will also include the program and the users answer .

Out

Description It will have all the AreaofInterest with a Boolean flag against each indicating the users selection . This object will also have List Of ProgramsAnswers along with Users Answers.

Boolean UpdateAreasOfInterest(string ContactCRMId, List<UserAreaOfInterest> UserAreasOfInterests)

In

1) CrmContactId 2) List<UserAreaOfInterest> :Entire List with user selection as flag against each . SBWS will
filter the AreaOfInterest with flag as true and Updates the users selection .

Out

Bool .Entire update will be a single transaction .

Description I

Вам также может понравиться