Exemplo n.º 1
0
        public async Task <OperationDetails> CreateDialogAsync(DialogCreatingDTO newDialog)
        {
            var dialogMembers = newDialog.Members
                                .Select(x => _dataStore.UserProfiles.GetByNameAsync(x).Result)
                                .Where(x => x != null);
            var dialog = newDialog.GetDialogEntity(dialogMembers);

            var savedDialog = await _dataStore.Dialogs.CreateAsync(dialog);

            if (savedDialog == null)
            {
                return(new OperationDetails(false, new string[] { "Dialog not created." }));
            }
            var details = new OperationDetails(true, new List <string>());

            ((List <string>)details.Descriptions).Add("Dialog was created.");

            var systemMessage = new Message
            {
                Dialog = savedDialog,
                //Sender = await _dataStore.UserProfiles.GetByNameAsync("System"),
                Body = "Dialog Created",
                Date = DateTime.Now
            };
            await _dataStore.Messages.CreateAsync(systemMessage);

            return(details);
        }
        public async Task <IActionResult> Post(DialogCreatingDTO dialog)
        {
            var username = await HttpContext.GetUserNameAsync();

            if (username == null)
            {
                return(BadRequest(new string[] { "Error with claim!!!" }));
            }
            var list = new List <string>(dialog.Members);

            list.Add(username);
            dialog.Members = list;
            var result = await _communicatingService.CreateDialogAsync(dialog);

            if (!result.IsSuccess)
            {
                return(BadRequest(result.Descriptions));
            }
            return(Ok());
        }