public static GroupParticipantViewModel Map(this ChatGroupParticipant p) { return(new GroupParticipantViewModel() { Id = p.Id, ContactId = p.ContactId, Name = GetDisplayName(p.Contact.DisplayName, p.Contact.Email), IsActive = p.IsActive, AvatarImageId = p.Contact.AvatarImageId, ChatGroupId = p.ChatGroupId, Email = p.Contact.Email, IsAllowVideo = !p.IsDeniedVideo, }); }
public string UpdateChatGroup(ChatGroup groupinfo) { try { UserLoginInformation loggedinUser = (UserLoginInformation)LoginController.ActiveUser; if (groupinfo.GroupId == 0) { try { using (TransactionScope transactionScope = new TransactionScope()) { try { using (kryptoEntities1 db = new kryptoEntities1()) { groupinfo.USERID = loggedinUser.USERID; groupinfo.ModifiedById = loggedinUser.USERID.ToString(); groupinfo.CreatedById = loggedinUser.USERID.ToString(); groupinfo.CreatedDate = DateTime.Now; groupinfo.Status = 1; // groupinfo.GroupType = 1; db.ChatGroups.Add(groupinfo); db.SaveChanges(); if (groupinfo.GroupId > 0) { List <MyNode> responseNodes = JsonConvert.DeserializeObject <List <MyNode> >(groupinfo.UserSelections); foreach (MyNode @node in responseNodes) { ChatGroupParticipant participant = new ChatGroupParticipant { USERID = @node.value, GroupId = groupinfo.GroupId, CreatedById = loggedinUser.USERID.ToString(), ModifiedById = loggedinUser.USERID.ToString(), CreatedDate = DateTime.Now, ModifiedDate = DateTime.Now, IsActive = true, IsAdmin = false, Status = 1 }; db.ChatGroupParticipants.Add(participant); } db.SaveChanges(); } } transactionScope.Complete(); } catch (Exception ee) { return("FAIL"); } } } catch (Exception exception) { return("FAIL"); } } else { try { using (TransactionScope transactionScope = new TransactionScope()) { try { using (kryptoEntities1 db = new kryptoEntities1()) { groupinfo = Updateobject(groupinfo.GroupId, groupinfo); groupinfo.ModifiedById = loggedinUser.USERID.ToString(); groupinfo.ModifiedDate = DateTime.Now; db.Entry(groupinfo).State = EntityState.Modified; db.SaveChanges(); List <MyNode> responseNodes = JsonConvert.DeserializeObject <List <MyNode> >(groupinfo.UserSelections); List <ChatGroupParticipant> participantsInDb = _context.ChatGroupParticipants.Where(x => x.GroupId == groupinfo.GroupId) .ToList(); List <int> indb = participantsInDb.Select(x => x.USERID).ToList(); List <int> inselections = responseNodes.Select(x => x.value).ToList(); var toAdd = UserDatatablesController.ExcludedRight(indb, inselections); var toDelete = UserDatatablesController.ExcludedLeft(indb, inselections); foreach (int @id in toAdd) { db.ChatGroupParticipants.Add(new ChatGroupParticipant { USERID = @id, GroupId = groupinfo.GroupId, CreatedById = loggedinUser.USERID.ToString(), ModifiedById = loggedinUser.USERID.ToString(), CreatedDate = DateTime.Now, ModifiedDate = DateTime.Now, IsActive = true, IsAdmin = false, Status = 1 }); } foreach ( ChatGroupParticipant existingChatGroupParticipant in toDelete.Select( id => db.ChatGroupParticipants.SingleOrDefault( x => x.USERID.Equals(id) && x.GroupId.Equals(groupinfo.GroupId))) ) { db.ChatGroupParticipants.Remove(existingChatGroupParticipant); } db.SaveChanges(); } transactionScope.Complete(); } catch (Exception ee) { return("FAIL"); } } } catch (Exception exception) { return("FAIL"); } } } catch (DbEntityValidationException e) { foreach (var eve in e.EntityValidationErrors) { Console.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:", eve.Entry.Entity.GetType().Name, eve.Entry.State); foreach (var ve in eve.ValidationErrors) { Console.WriteLine("- Property: \"{0}\", Error: \"{1}\"", ve.PropertyName, ve.ErrorMessage); } } return("FAIL"); } return("SUCESS"); }