/// <summary> /// Creates the scheduling code. /// </summary> /// <param name="schedulingCodeDetails">The scheduling code details.</param> /// <returns></returns> public async Task <CSSResponse> CreateSchedulingCode(CreateSchedulingCode schedulingCodeDetails) { var schedulingCodes = await _repository.SchedulingCodes.GetSchedulingCodesByDescriptionAndIconOrRefId(new SchedulingCodeAttributes { IconId = schedulingCodeDetails.IconId, Description = schedulingCodeDetails.Description, RefId = schedulingCodeDetails.RefId }); if (schedulingCodes?.Count > 0 && schedulingCodes[0].RefId != null && schedulingCodes[0].RefId == schedulingCodeDetails.RefId) { return(new CSSResponse($"SchedulingCode with id '{schedulingCodeDetails.RefId}' already exists.", HttpStatusCode.Conflict)); } else if (schedulingCodes?.Count > 0 && schedulingCodes[0].Description == schedulingCodeDetails.Description) { return(new CSSResponse($"SchedulingCode with description '{schedulingCodeDetails.Description}' already exists.", HttpStatusCode.Conflict)); } else if (schedulingCodes?.Count > 0 && schedulingCodes[0].IconId == schedulingCodeDetails.IconId) { return(new CSSResponse($"SchedulingCode with icon '{schedulingCodes[0].Icon}' already exists.", HttpStatusCode.Conflict)); } var schedulingCodeRequest = _mapper.Map <SchedulingCode>(schedulingCodeDetails); _repository.SchedulingCodes.CreateSchedulingCode(schedulingCodeRequest); await _repository.SaveAsync(); await _bus.SendCommand <CreateSchedulingCodeCommand>(MassTransitConstants.SchedulingCodeCreateCommandRouteKey, new { schedulingCodeRequest.Id, Name = schedulingCodeRequest.Description, schedulingCodeRequest.RefId, schedulingCodeRequest.PriorityNumber, schedulingCodeRequest.TimeOffCode, schedulingCodeRequest.IconId, SchedulingTypeCode = JsonConvert.SerializeObject(schedulingCodeDetails.SchedulingTypeCode), schedulingCodeRequest.ModifiedDate }); return(new CSSResponse(new SchedulingCodeIdDetails { SchedulingCodeId = schedulingCodeRequest.Id }, HttpStatusCode.Created)); }
public async Task <IActionResult> CreateSchedulingCode([FromBody] CreateSchedulingCode schedulingCodeDetails) { var result = await _schedulingCodeService.CreateSchedulingCode(schedulingCodeDetails); return(StatusCode((int)result.Code, result.Value)); }