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()); }