public async Task <IActionResult> Update(string objectID, string checkListId) { var categoriesTask = _dealObjectProvider.GetCategories(); var checksTask = _dealObjectProvider.GetChecks(checkListId); var userObjectTask = _dealObjectProvider.GetUserObject(objectID); await Task.WhenAll(categoriesTask, checksTask, userObjectTask); var userObject = userObjectTask.Result.Model; var modifyModel = new ObjectModifyViewModel { CategoryList = new SelectList(categoriesTask.Result.Model, nameof(ObjectCategory.Id), nameof(ObjectCategory.Name)), ObjectChecks = _mapper.Map <IList <ObjectModifyViewModel.ObjectCheck> >(checksTask.Result.Model), Name = userObject.Name, ObjectStatusType = (ObjectStatusType)Int32.Parse(userObject.StatusId), Description = userObject.Description, CategoryCode = userObject.CategoryId }; var model = new UpdateObjectViewModel { ModifyViewModel = modifyModel, ObjectId = objectID, CheckListId = checkListId }; return(View(model)); }
public async Task <IActionResult> Create() { var model = new ObjectModifyViewModel(); var categories = await _dealObjectProvider.GetCategories(); model.CategoryList = new SelectList(categories.Model, nameof(ObjectCategory.Id), nameof(ObjectCategory.Name)); model.ObjectStatusType = ObjectStatusType.WantSell; return(View(model)); }
public async Task <IActionResult> Create(ObjectModifyViewModel model) { if (ModelState.IsValid) { var checks = model.ObjectChecks.Select(c => new DealCheck(((int)c.CheckType).ToString(), c.Description)); var createObjectModel = new CreateDealObject(model.CategoryCode, ((int)model.ObjectStatusType).ToString(), model.Name, model.Description, checks); var createObjectResult = await _dealObjectProvider.CreateObject(createObjectModel); if (createObjectResult.ResultMessage.MessageType != MessageType.Error) { return(RedirectToAction(nameof(Index))); } else { ShowError(createObjectResult.ResultMessage.Message); } } return(View(model)); }
public async Task <IActionResult> Update(string objectID, string checkListId, ObjectModifyViewModel model) { if (ModelState.IsValid) { var checks = model .ObjectChecks .Select(c => new DealCheck(((int)c.CheckType).ToString(), c.Description, c.CheckId)) .ToList(); var checksToAdd = checks .Where(c => String.IsNullOrEmpty(c.CheckId)) .ToList(); var addChecksTask = _dealObjectProvider.CreateChecks(checksToAdd, checkListId, objectID); var checksIds = checks .Where(c => !String.IsNullOrEmpty(c.CheckId)).Select(c => c.CheckId); var oldChecks = await _dealObjectProvider.GetChecks(checkListId); var oldChecksIds = oldChecks.Model.Select(c => c.CheckId); var checksToDelete = oldChecksIds.Where(c => !checksIds.Contains(c.ToString())) .Select(c => c.ToString()) .ToList(); var deleteChecksTask = _dealObjectProvider.DeleteChecks(checksToDelete, checkListId, objectID); var updateObjectModel = new UpdateDealObject(objectID, model.CategoryCode, ((int)model.ObjectStatusType).ToString(), model.Name, model.Description); var updateObjectTask = _dealObjectProvider.UpdateObject(updateObjectModel); await Task.WhenAll(addChecksTask, deleteChecksTask, updateObjectTask); if (addChecksTask.Result.ResultMessage.MessageType != MessageType.Error && deleteChecksTask.Result.ResultMessage.MessageType != MessageType.Error && updateObjectTask.Result.ResultMessage.MessageType != MessageType.Error) { return(RedirectToAction(nameof(Index))); } else { ShowError(updateObjectTask.Result.ResultMessage.Message); } } var categories = await _dealObjectProvider.GetCategories(); model.CategoryList = new SelectList(categories.Model, nameof(ObjectCategory.Id), nameof(ObjectCategory.Name)); return(View(new UpdateObjectViewModel { CheckListId = checkListId, ModifyViewModel = model, ObjectId = objectID })); }