/// <summary> /// Produces new staffs and add them to data source /// </summary> /// <param name="count">how many restaurants will be hired</param> public void HireStaff(int count) { CreateStaffRequest request = BuildCreateStaffRequest(count); var response = _staffService.CreateStaff(request); if (response == null) { throw new Exception(""); } }
/// <summary> /// 创建客服账号。 /// </summary> /// <param name="req"><see cref="CreateStaffRequest"/></param> /// <returns><see cref="CreateStaffResponse"/></returns> public CreateStaffResponse CreateStaffSync(CreateStaffRequest req) { JsonResponseModel <CreateStaffResponse> rsp = null; try { var strResp = this.InternalRequestSync(req, "CreateStaff"); rsp = JsonConvert.DeserializeObject <JsonResponseModel <CreateStaffResponse> >(strResp); } catch (JsonSerializationException e) { throw new TencentCloudSDKException(e.Message); } return(rsp.Response); }
public IHttpActionResult Post( [FromUri] CreateStaffRequest request, [FromBody] CreateStaffPayload payload) { if (!ModelState.IsValid) { return(BadRequestWithErrors()); } request.Payload = payload; var result = _createStaffProcessor.Process(request); return(Ok(result)); }
public async Task <ActionResult <BaseResponse <StaffViewModel> > > PostAccount([FromBody] CreateStaffRequest request) { try { var raw = Request.Headers.FirstOrDefault(x => x.Key.Equals("Authorization")).Value; var requester = IdentityManager.GetUsernameFromToken(raw); var roles = IdentityManager.GetRolesFromToken(raw); var result = _staffService.CreateStaff(request, requester, roles); if (result == null) { return(BadRequest(new ErrorResponse(StatusCodes.Status400BadRequest.ToString() , "Failed to create a staff"))); } return(Created(result.Id.ToString(), new BaseResponse <StaffViewModel>() { Data = result })); } catch (Exception ex) { if (ex.Message.StartsWith("ERR")) { return(BadRequest(new ErrorResponse(ex.Message))); } else { throw; } } }
public StaffViewModel CreateStaff(CreateStaffRequest request, string createdBy, IEnumerable <string> roles = null) { if (roles.Count() == 0 || roles == null) { return(null); } if (roles.Contains(Constants.ROLE_MOD_NAME) && !request.RoleId.Equals(Constants.ROLE_STAFF_ID)) { return(null); } if (!request.Password.IsEmpty() && request.PasswordConfirmation.IsEmpty()) { throw new Exception(Constants.ERR_EMPTY_PWD_CONFIR); } else if (!request.Password.IsEmpty() && !request.Password.Equals(request.PasswordConfirmation)) { throw new Exception(Constants.ERR_PWD_NOTMATCH); } if (request.Email.IsEmpty()) { throw new Exception(Constants.ERR_EMPTY_EMAIL); } if (request.FullName.IsEmpty()) { throw new Exception(Constants.ERR_EMPTY_FNAME); } if (request.PhoneNumber.Length > Constants.CONSTRAINT_PHONENUM_MAXLEN) { throw new Exception(Constants.ERR_PHONENUM_MAXLEN); } var repo = _unitOfWork.Repository <Account>(); var creatingStaff = _mapper.Map <Account>(request); try { creatingStaff.Id = Guid.NewGuid(); creatingStaff.CreatedBy = createdBy; creatingStaff.UpdatedBy = createdBy; creatingStaff.PasswordHash = IdentityManager.HashPassword(request.Password); repo.Insert(creatingStaff); repo.Commit(); } catch (DbUpdateException due) { var se = due.GetBaseException() as SqlException; if (se != null) { if (se.Errors.Count > 0) { switch (se.Errors[0].Number) { case 547: // Foreign Key violation throw new Exception(Constants.ERR_ROLE_FK); case 2627: throw new Exception(Constants.ERR_UNAME_NOTAVAILABLE); default: throw; } } } } return(_mapper.Map <StaffViewModel>(creatingStaff)); }