Example #1
0
            public static async void CreateShiftV2(CreateShiftRequest request, CreateShiftResponse response)
            {
                ThrowIf.Null(request, "CreateShiftRequest");
                ThrowIf.Null(response, "CreateShiftResponse");

                string inventLocationDataAreaId = request.RequestContext.GetChannelConfiguration().InventLocationDataAreaId;

                CreateShiftRTSAsync(request, response);

                using (var databaseContext = new DatabaseContext(request))
                {
                    ParameterSet parameters = new ParameterSet();

                    parameters["@CHANNEL"]           = response.Shift.StoreRecordId;
                    parameters["@TERMINALID"]        = response.Shift.TerminalId;
                    parameters["@STOREID"]           = response.Shift.StoreId;
                    parameters["@SHIFTID"]           = response.Shift.ShiftId;
                    parameters["@STAFFID"]           = response.Shift.StaffId;
                    parameters["@CURRENTSTAFFID"]    = response.Shift.CurrentStaffId;
                    parameters["@STATUS"]            = response.Shift.Status;
                    parameters["@CURRENTTERMINALID"] = response.Shift.CurrentTerminalId;
                    parameters["@ISSHARED"]          = response.Shift.IsShared;
                    parameters["@STARTDATETIMEUTC"]  = DateTimeOffsetDataHelper.GetDbNullableDateTime(response.Shift.StartDateTime);
                    parameters["@STATUSDATETIMEUTC"] = DateTimeOffsetDataHelper.GetDbNullableDateTime(response.Shift.StatusDateTime);
                    parameters["@DATAAREAID"]        = inventLocationDataAreaId;
                    parameters["@CASHDRAWER"]        = response.Shift.CashDrawer;

                    databaseContext.ExecuteStoredProcedureNonQuery("[ext].[CreateNewShift]", parameters);
                }
            }
Example #2
0
            public static void CreateShiftAsync(CreateShiftRequest request, CreateShiftResponse response)
            {
                ThrowIf.Null(request, "CreateShiftRequest");
                ThrowIf.Null(response, "CreateShiftResponse");

                string inventLocationDataAreaId = request.RequestContext.GetChannelConfiguration().InventLocationDataAreaId;

                Task.Run <bool>(() => {
                    InvokeExtensionMethodRealtimeRequest extensionRequest = new InvokeExtensionMethodRealtimeRequest(
                        "CreateNewShift",
                        response.Shift.StoreRecordId,
                        response.Shift.TerminalId,
                        response.Shift.StoreId,
                        response.Shift.ShiftId,
                        response.Shift.StaffId,
                        response.Shift.CurrentStaffId,
                        Convert.ToInt32(response.Shift.Status),
                        response.Shift.CurrentTerminalId,
                        response.Shift.IsShared,
                        response.Shift.CashDrawer,
                        inventLocationDataAreaId);

                    InvokeExtensionMethodRealtimeResponse RTSResponse = request.RequestContext.Execute <InvokeExtensionMethodRealtimeResponse>(extensionRequest);
                    ReadOnlyCollection <object> results = RTSResponse.Result;
                    bool success = Convert.ToBoolean(results[0]);
                    return(success);
                });

                Task.Run(() =>
                {
                    using (var databaseContext = new DatabaseContext(request))
                    {
                        ParameterSet parameters          = new ParameterSet();
                        parameters["@CHANNEL"]           = response.Shift.StoreRecordId;
                        parameters["@TERMINALID"]        = response.Shift.TerminalId;
                        parameters["@STOREID"]           = response.Shift.StoreId;
                        parameters["@SHIFTID"]           = response.Shift.ShiftId;
                        parameters["@STAFFID"]           = response.Shift.StaffId;
                        parameters["@CURRENTSTAFFID"]    = response.Shift.CurrentStaffId;
                        parameters["@STATUS"]            = response.Shift.Status;
                        parameters["@CURRENTTERMINALID"] = response.Shift.CurrentTerminalId;
                        parameters["@ISSHARED"]          = response.Shift.IsShared;
                        parameters["@STARTDATETIMEUTC"]  = DateTimeOffsetDataHelper.GetDbNullableDateTime(response.Shift.StartDateTime);
                        parameters["@STATUSDATETIMEUTC"] = DateTimeOffsetDataHelper.GetDbNullableDateTime(response.Shift.StatusDateTime);
                        parameters["@DATAAREAID"]        = inventLocationDataAreaId;
                        parameters["@CASHDRAWER"]        = response.Shift.CashDrawer;

                        databaseContext.ExecuteStoredProcedureNonQuery("[ext].[CreateNewShift]", parameters);
                    }
                }).Wait();
            }
 private void CreateShift(CreateShiftRequest request, CreateShiftResponse response)
 {
     UnclosedShiftDataServiceAsync.CreateShiftAsync(request, response);
 }
Example #4
0
            public static async Task <bool> CreateShiftRTSAsync(CreateShiftRequest request, CreateShiftResponse response)
            {
                Func <bool> function = new Func <bool>(() =>
                {
                    string inventLocationDataAreaId = request.RequestContext.GetChannelConfiguration().InventLocationDataAreaId;

                    InvokeExtensionMethodRealtimeRequest extensionRequest = new InvokeExtensionMethodRealtimeRequest(
                        "CreateNewShift",
                        response.Shift.StoreRecordId,
                        response.Shift.TerminalId,
                        response.Shift.StoreId,
                        response.Shift.ShiftId,
                        response.Shift.StaffId,
                        response.Shift.CurrentStaffId,
                        Convert.ToInt32(response.Shift.Status),
                        response.Shift.CurrentTerminalId,
                        response.Shift.IsShared,
                        response.Shift.CashDrawer,
                        inventLocationDataAreaId);

                    InvokeExtensionMethodRealtimeResponse RTSResponse = request.RequestContext.Execute <InvokeExtensionMethodRealtimeResponse>(extensionRequest);
                    ReadOnlyCollection <object> results = RTSResponse.Result;
                    bool success = Convert.ToBoolean(results[0]);
                    return(success);
                });

                return(await Task.Run <bool>(function));
            }