public async Task EditDialogName(DialogDTO dialogDto) { DAL.Entities.Dialog dialog = await Database.DialogManager.GetById(dialogDto.Id); dialog.Name = dialogDto.Name; await Database.DialogManager.Update(dialog); await Database.SaveAsync(); }
public async Task AddUserToDialog(DialogDTO dialog, UserDTO account) { DAL.Entities.Dialog dialogEnt = await Database.DialogManager.GetById(dialog.Id); DAL.Entities.ClientProfile userEnt = await Database.ClientManager.GetById(account.Id); dialogEnt.ChatUsers.Add(userEnt); await Database.DialogManager.Update(dialogEnt); await Database.SaveAsync(); }
public async Task <List <UserDTO> > GetUsersInDialog(DialogDTO dialog) { DAL.Entities.Dialog dialogEnt = await Database.DialogManager.GetById(dialog.Id); List <UserDTO> result = new List <UserDTO>(); dialogEnt.ChatUsers.ForEach(m => result.Add(new UserDTO { Id = m.Id, Email = m.ApplicationUser.Email, Address = m.Address, Name = m.Name, UserName = m.ApplicationUser.UserName })); return(result); }
public async Task RemoveUserFromDialog(DialogDTO dialog, UserDTO account) { DAL.Entities.Dialog dialogEnt = await Database.DialogManager.GetById(dialog.Id); DAL.Entities.ClientProfile userEnt = await Database.ClientManager.GetById(account.Id); dialogEnt.ChatUsers.Remove(userEnt); if (dialogEnt.ChatUsers.Count == 0) { await Database.DialogManager.Delete(dialogEnt); return; } await Database.DialogManager.Update(dialogEnt); await Database.SaveAsync(); }
public async Task <int> PostMessageToDialog(DialogDTO dialog, UserDTO user, MessageDTO message) { DAL.Entities.Dialog dialogEnt = await Database.DialogManager.GetById(dialog.Id); DAL.Entities.ClientProfile userEnt = await Database.ClientManager.GetById(user.Id); DAL.Entities.Message newMessage = new DAL.Entities.Message { Content = message.Content }; newMessage.Time = DateTime.Now; newMessage.Sender = userEnt; newMessage.Dialog = dialogEnt; await Database.MessageManager.Create(newMessage); await Database.SaveAsync(); return(newMessage.Id); }
public async Task <DialogDTO> GetDialogById(int Id) { DAL.Entities.Dialog dialog = await Database.DialogManager.GetById(Id); DialogDTO result = new DialogDTO { Id = dialog.Id, Name = dialog.Name }; dialog.ChatUsers.ForEach(m => result.Users.Add(new UserDTO { Id = m.Id, Email = m.ApplicationUser.Email, Address = m.Address, Name = m.Name, UserName = m.ApplicationUser.UserName })); return(result); }
public async Task <int> CreateDialog(DialogDTO dialogDto) { int id; if (dialogDto.Users.Count == 2) { int tmp = await CheckIfPrivateDialogExists(dialogDto); if (tmp != -1) { return(tmp); } } List <DAL.Entities.ClientProfile> list = dialogDto.Users .Select(User => Database.ClientManager.GetById(User.Id).Result) .ToList(); StringBuilder dialogName = new StringBuilder(); if (string.IsNullOrEmpty(dialogDto.Name)) { list.ForEach(u => dialogName.Append(u.Name + ", ")); dialogDto.Name = dialogName.ToString(); } DAL.Entities.Dialog dialogEnt = new DAL.Entities.Dialog { Name = dialogDto.Name }; dialogEnt.ChatUsers.AddRange(list); await Database.DialogManager.Create(dialogEnt); await Database.SaveAsync(); id = dialogEnt.Id; return(id); }