public async Task DeleteRecieverXref(Guid clientID, Guid recipientID, Guid eventID) { Data.Entities.ClientRelationXref contextRelation = await santaContext.ClientRelationXrefs.FirstOrDefaultAsync(r => r.SenderClientId == clientID && r.RecipientClientId == recipientID && r.EventTypeId == eventID); List <ChatMessage> contextRelatedMessages = await santaContext.ChatMessages.Where(cm => cm.ClientRelationXrefId == contextRelation.ClientRelationXrefId).ToListAsync(); santaContext.ChatMessages.RemoveRange(contextRelatedMessages); santaContext.ClientRelationXrefs.Remove(contextRelation); }
/// <summary> /// Maps a context relationship to a relationship meta /// </summary> /// <param name="contextRecipientXref"></param> /// <returns></returns> public static Logic.Objects.RelationshipMeta MapRelationshipMeta(Data.Entities.ClientRelationXref contextXrefRelationship, Guid clientIDMetaToMap) { List <ClientTagXref> tagXrefList = contextXrefRelationship.SenderClientId != clientIDMetaToMap?contextXrefRelationship.RecipientClient.ClientTagXref.ToList() : contextXrefRelationship.SenderClient.ClientTagXref.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.ChatMessage.Count > 0 ? false : true }; return(logicRelationship); }