CreateCategoryOfCare(CategoryOfCare categoryOfCare) { var validationResult = CategoryOfCareStatus.Success; var existingCustomer = (await customerRepository .FindAsync( c => !c.IsDeleted && c.Id == categoryOfCare.CustomerId )) .SingleOrDefault(); if (existingCustomer == null) { validationResult = CategoryOfCareStatus.CustomerDoesNotExist; } var existingCategoryOfCare = await GetCategoryOfCare(categoryOfCare.CustomerId, categoryOfCare.Name); if (existingCategoryOfCare != null) { if (validationResult.HasFlag(CategoryOfCareStatus.Success)) { validationResult = CategoryOfCareStatus.NameConflict; } else { validationResult |= CategoryOfCareStatus.NameConflict; } } if (!validationResult.HasFlag(CategoryOfCareStatus.Success)) { return(new OperationResultDto <CategoryOfCare, CategoryOfCareStatus>() { Status = validationResult }); } categoryOfCareRepository.Insert(categoryOfCare); await unitOfWork.SaveAsync(); return(new OperationResultDto <CategoryOfCare, CategoryOfCareStatus>() { Content = categoryOfCare, Status = CategoryOfCareStatus.Success }); }
/// <summary> /// Updates the category of care. /// </summary> /// <param name="categoryOfCare">The category of care.</param> /// <returns></returns> public async Task <CategoryOfCareStatus> UpdateCategoryOfCare(CategoryOfCare categoryOfCare) { var existingCategoryOfCare = await GetCategoryOfCare(categoryOfCare.Id); if (existingCategoryOfCare == null) { return(CategoryOfCareStatus.CategoryOfCareWithSuchIdDoesNotExist); } var existingCategoryOfCareWithConflictedName = await GetCategoryOfCare(categoryOfCare.CustomerId, categoryOfCare.Name); if (existingCategoryOfCareWithConflictedName != null) { return(CategoryOfCareStatus.NameConflict); } existingCategoryOfCare.Name = categoryOfCare.Name; categoryOfCareRepository.Update(existingCategoryOfCare); await unitOfWork.SaveAsync(); return(CategoryOfCareStatus.Success); }