public async Task<ResponseBool> SalesmanUserAddAsync(DistributorSalesmanItem distributorSalesmanItem, UserItem userItem) { ResponseBool _response = new ResponseBool { Success = false, ErrorInfo = "" }; bool success = false; string url = string.Format("api/distributorservices/salesmanuseradd"); var httpClient = setupHttpClient(); httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); try { SalesmanAddDTO dto = new SalesmanAddDTO { Salesman = distributorSalesmanItem, User = userItem }; var response = await httpClient.PostAsJsonAsync(url, dto); _response = await response.Content.ReadAsAsync<ResponseBool>(); if (response.IsSuccessStatusCode) success = true; } catch (Exception ex) { _log.Error("Failed to add salesman /user", ex); } return _response; }
public HttpResponseMessage SalesmanUserAdd(SalesmanAddDTO salesmanAddDto) { var response = new ResponseBool { Success = false }; User user = null; try { var dsItem = salesmanAddDto.Salesman; var userItem = salesmanAddDto.User; CostCentre ds = _costCentreRepository.GetById(dsItem.MasterId); if (ds == null) { ds = _costCentreFactory.CreateCostCentre(dsItem.MasterId, CostCentreType.DistributorSalesman, _costCentreRepository.GetById(dsItem.ParentCostCentreId)) as DistributorSalesman; } ds.Name = dsItem.Name; ds.CostCentreCode = dsItem.CostCentreCode; user = _userRepository.GetById(userItem.MasterId); if (user == null) user = new User(Guid.NewGuid()); user.Username = userItem.Username; user.Password = userItem.Password; user.PIN = userItem.PIN; user.Mobile = userItem.Mobile; user.UserType = (UserType)userItem.UserType; user.TillNumber = userItem.TillNumber; ValidationResultInfo vri = _userRepository.Validate(user); if (!vri.IsValid) throw new DomainValidationException(vri, "Failed to save user"); var ccId = _costCentreRepository.Save(ds); user.CostCentre = ccId; var userId = _userRepository.Save(user); response.Success = true; response.ErrorInfo = "Successfully saved."; } catch (DomainValidationException dve) { string errorMsg = dve.ValidationResults.Results.Aggregate("Error: Invalid user fields.\n", (current, msg) => current + ("\t- " + msg.ErrorMessage + "\n")); response.ErrorInfo = errorMsg; _log.Error(errorMsg, dve); } catch (Exception ex) //any other { response.ErrorInfo = "Error: An error occurred when saving the user."; _log.Error("Error: An error occurred when saving the user.", ex); } return Request.CreateResponse(HttpStatusCode.OK, response); }