コード例 #1
0
        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();
        }
コード例 #2
0
        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();
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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();
        }
コード例 #5
0
        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);
        }
コード例 #6
0
        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);
        }
コード例 #7
0
        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);
        }