public async Task UpdateAssignmentProgressStatusByID(Guid assignmentID, Guid newAssignmentStatusID) { ClientRelationXref contextRelationship = await santaContext.ClientRelationXrefs.FirstOrDefaultAsync(crxf => crxf.ClientRelationXrefId == assignmentID); contextRelationship.AssignmentStatusId = newAssignmentStatusID; santaContext.ClientRelationXrefs.Update(contextRelationship); }
public async Task CreateClientRelationByID(Guid senderClientID, Guid recipientClientID, Guid eventTypeID, Guid assignmentStatusID) { Data.Entities.ClientRelationXref contexRelation = new ClientRelationXref() { ClientRelationXrefId = Guid.NewGuid(), SenderClientId = senderClientID, RecipientClientId = recipientClientID, EventTypeId = eventTypeID, // Assignment status should be set to its default value as well AssignmentStatusId = assignmentStatusID }; await santaContext.ClientRelationXrefs.AddAsync(contexRelation); }
/// <summary> /// Maps a context relationship to a relationship meta /// </summary> /// <param name="contextRecipientXref"></param> /// <returns></returns> public static RelationshipMeta MapRelationshipMeta(ClientRelationXref contextXrefRelationship, Guid clientIDMetaToMap) { List <ClientTagXref> tagXrefList = contextXrefRelationship.SenderClientId != clientIDMetaToMap?contextXrefRelationship.RecipientClient.ClientTagXrefs.ToList() : contextXrefRelationship.SenderClient.ClientTagXrefs.ToList(); ClientMeta logicMeta = contextXrefRelationship.SenderClientId != clientIDMetaToMap?Mapper.MapClientMeta(contextXrefRelationship.RecipientClient) : Mapper.MapClientMeta(contextXrefRelationship.SenderClient); Logic.Objects.RelationshipMeta logicRelationship = new RelationshipMeta() { relationshipClient = logicMeta, eventType = Mapper.MapEvent(contextXrefRelationship.EventType), clientRelationXrefID = contextXrefRelationship.ClientRelationXrefId, tags = tagXrefList.Select(Mapper.MapTagRelationXref).OrderBy(t => t.tagName).ToList(), assignmentStatus = MapAssignmentStatus(contextXrefRelationship.AssignmentStatus), removable = contextXrefRelationship.ChatMessages.Count > 0 ? false : true }; return(logicRelationship); }
public static Logic.Objects.ProfileAssignment MapProfileRecipient(ClientRelationXref contextClientRelationXref) { Logic.Objects.ProfileAssignment logicProfileRecipient = new ProfileAssignment() { relationXrefID = contextClientRelationXref.ClientRelationXrefId, recipientClient = Mapper.MapClientMeta(contextClientRelationXref.RecipientClient), recipientEvent = Mapper.MapEvent(contextClientRelationXref.EventType), assignmentStatus = MapAssignmentStatus(contextClientRelationXref.AssignmentStatus), address = new Address { addressLineOne = contextClientRelationXref.RecipientClient.AddressLine1, addressLineTwo = contextClientRelationXref.RecipientClient.AddressLine2, city = contextClientRelationXref.RecipientClient.City, country = contextClientRelationXref.RecipientClient.Country, state = contextClientRelationXref.RecipientClient.State, postalCode = contextClientRelationXref.RecipientClient.PostalCode }, responses = contextClientRelationXref.RecipientClient.SurveyResponse.Select(Mapper.MapResponse).ToList() }; return(logicProfileRecipient); }
/// <summary> /// Maps the information of a message history with the contents of a relationship, and the viewer subject client information /// </summary> /// <param name="contextRelationshipXref"></param> /// <param name="logicSubjectClient"></param> /// <returns></returns> public static Logic.Objects.MessageHistory MapHistoryInformation(ClientRelationXref contextRelationshipXref, BaseClient logicSubjectClient, bool unloaded) { List <Message> logicListRecieverMessages = new List <Message>(); List <Message> logicListSubjectMessages = new List <Message>(); if (!unloaded) { if (logicSubjectClient.isAdmin) { logicListSubjectMessages = contextRelationshipXref.ChatMessage .Select(Mapper.MapMessage) .OrderBy(dt => dt.dateTimeSent) .Where(m => m.fromAdmin) .ToList(); logicListRecieverMessages = contextRelationshipXref.ChatMessage .Select(Mapper.MapMessage) .OrderBy(dt => dt.dateTimeSent) .Where(m => !m.fromAdmin) .ToList(); } else { logicListSubjectMessages = contextRelationshipXref.ChatMessage .Select(Mapper.MapMessage) .OrderBy(dt => dt.dateTimeSent) .Where(m => !m.fromAdmin && m.senderClient.clientId == logicSubjectClient.clientID) .ToList(); logicListRecieverMessages = contextRelationshipXref.ChatMessage .Select(Mapper.MapMessage) .OrderBy(dt => dt.dateTimeSent) .Where(m => m.fromAdmin) .ToList(); } } MessageHistory logicHistory = new MessageHistory() { relationXrefID = contextRelationshipXref.ClientRelationXrefId, eventType = MapEvent(contextRelationshipXref.EventType), assignmentStatus = MapAssignmentStatus(contextRelationshipXref.AssignmentStatus), subjectClient = MapClientChatMeta(logicSubjectClient), conversationClient = MapClientChatMeta(contextRelationshipXref.SenderClient), assignmentRecieverClient = MapClientChatMeta(contextRelationshipXref.RecipientClient), assignmentSenderClient = MapClientChatMeta(contextRelationshipXref.SenderClient), subjectMessages = unloaded ? new List <Message>() : logicListSubjectMessages, recieverMessages = unloaded ? new List <Message>() : logicListRecieverMessages, unreadCount = logicListRecieverMessages.Where(m => m.isMessageRead == false).ToList().Count() }; foreach (Message logicMessage in logicHistory.subjectMessages) { logicMessage.subjectMessage = true; } return(logicHistory); }