private NullResponse InsertShiftsStagingTable(CreateShiftDataRequest request) { var databaseAccessor = new ShiftsSqliteDatabaseAccessor(request.RequestContext); databaseAccessor.InsertShiftStaging(request.Shift); return(new NullResponse()); }
/// <summary> /// The data service method to insert the shift into staging table if the shift status is not closed. /// </summary> /// <param name="request">The create shift data request.</param> /// <returns>A null response.</returns> private NullResponse InsertShiftStagingTable(CreateShiftDataRequest request) { ThrowIf.Null(request, "request"); ThrowIf.Null(request.Shift, "request.Shift"); Shift shift = request.Shift; if (shift.Status == ShiftStatus.Closed) { this.ConvertShiftToTableVariableParametersAndCallStoredProcedure(InsertShiftSprocName, request, isShiftStagingTableRow: false); } else { this.ConvertShiftToTableVariableParametersAndCallStoredProcedure(UpsertShiftStagingSprocName, request); } return(new NullResponse()); }
/// <summary> /// Executes the create shift staging workflow. /// </summary> /// <param name="request">The new Shift request.</param> /// <returns>The new Shift response.</returns> protected override CreateShiftResponse Process(CreateShiftRequest request) { ThrowIf.Null(request, "request"); // Validate Shift id. if (request.ShiftId == null || request.ShiftId <= 0) { throw new ArgumentException("Shift identifier should not be null and should be greater than 0 to open a shift."); } GetCurrentTerminalIdDataRequest dataRequest = new GetCurrentTerminalIdDataRequest(); request.TerminalId = this.Context.Execute <SingleEntityDataServiceResponse <string> >(dataRequest).Entity; this.ValidateCanOpenShift(request); Shift shift = this.CreateNewShift(request); var createShiftRequest = new CreateShiftDataRequest(shift); request.RequestContext.Runtime.Execute <NullResponse>(createShiftRequest, this.Context); return(new CreateShiftResponse(shift)); }