Example #1
0
            public static void CloseShiftAsync(Shift shift, Request request)
            {
                Task.Run <bool>(() =>
                {
                    InvokeExtensionMethodRealtimeRequest extensionRequest = new InvokeExtensionMethodRealtimeRequest(
                        "RemoveOpenedShift",
                        shift.StoreRecordId,
                        shift.TerminalId,
                        shift.ShiftId);
                    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"]    = shift.StoreRecordId;
                        parameters["@TERMINALID"] = shift.TerminalId;
                        parameters["@SHIFTID"]    = shift.ShiftId;

                        databaseContext.ExecuteStoredProcedureNonQuery("[ext].[DeleteClosedShift]", parameters);
                    }
                }).Wait();
            }
Example #2
0
            public static void ChangeShiftStatusAsync(Shift shift, Request request)
            {
                Task.Run <bool>(() => {
                    InvokeExtensionMethodRealtimeRequest extensionRequest = new InvokeExtensionMethodRealtimeRequest(
                        "ChangeShiftStatus",
                        shift.StoreRecordId,
                        shift.TerminalId,
                        shift.ShiftId,
                        Convert.ToInt32(shift.Status),
                        shift.CurrentTerminalId,
                        shift.CurrentStaffId);

                    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"]           = shift.StoreRecordId;
                        parameters["@TERMINALID"]        = shift.TerminalId;
                        parameters["@SHIFTID"]           = shift.ShiftId;
                        parameters["@STATUS"]            = shift.Status;
                        parameters["@STATUSDATETIMEUTC"] = shift.StatusDateTime;
                        parameters["@CURRENTSTAFFID"]    = shift.CurrentStaffId;
                        parameters["@CURRENTTERMINALID"] = shift.CurrentTerminalId;
                        databaseContext.ExecuteStoredProcedureNonQuery("[ext].[ChangeShiftStaus]", parameters);
                    }
                }).Wait();
            }
Example #3
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));
            }
Example #4
0
            public static void CloseShift(ChangeShiftStatusRequest request, ChangeShiftStatusResponse response)
            {
                ThrowIf.Null(request, "CreateShiftRequest");
                ThrowIf.Null(response, "CreateShiftResponse");

                InvokeExtensionMethodRealtimeRequest extensionRequest = new InvokeExtensionMethodRealtimeRequest(
                    "RemoveOpenedShift",
                    response.Shift.StoreRecordId,
                    response.Shift.TerminalId,
                    response.Shift.ShiftId);

                InvokeExtensionMethodRealtimeResponse RTSResponse = request.RequestContext.Execute <InvokeExtensionMethodRealtimeResponse>(extensionRequest);
                ReadOnlyCollection <object>           results     = RTSResponse.Result;

                bool success = Convert.ToBoolean(results[0]);

                if (!success)
                {
                    using (var databaseContext = new DatabaseContext(request))
                    {
                        ParameterSet parameters = new ParameterSet();
                        parameters["@CHANNEL"]    = response.Shift.StoreRecordId;
                        parameters["@TERMINALID"] = response.Shift.TerminalId;
                        parameters["@SHIFTID"]    = response.Shift.ShiftId;

                        databaseContext.ExecuteStoredProcedureNonQuery("[ext].[DeleteClosedShift]", parameters);
                    }
                }
            }
Example #5
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();
            }
            public void OnExecuting(Request request)
            {
                if (request is SaveCartVersionedDataRequest)
                {
                    SaveCartVersionedDataRequest saveCartVersionedDataRequest = request as SaveCartVersionedDataRequest;

                    DeviceConfiguration deviceConfiguration = request.RequestContext.GetDeviceConfiguration();

                    if (request.RequestContext.GetDeviceConfiguration().EnableAxCustomerSearch == true &&
                        !string.IsNullOrEmpty(saveCartVersionedDataRequest.SalesTransaction.CustomerId) &&
                        string.IsNullOrEmpty(saveCartVersionedDataRequest.SalesTransaction.LoyaltyCardId))
                    {
                        InvokeExtensionMethodRealtimeRequest extensionRequest = new InvokeExtensionMethodRealtimeRequest("GetCustomerLoyaltyCard",
                                                                                                                         saveCartVersionedDataRequest.SalesTransaction.CustomerId,
                                                                                                                         request.RequestContext.GetChannelConfiguration().InventLocationDataAreaId);

                        InvokeExtensionMethodRealtimeResponse extensionResponse = request.RequestContext.Execute <InvokeExtensionMethodRealtimeResponse>(extensionRequest);
                        ReadOnlyCollection <object>           results           = extensionResponse.Result;

                        string loyalyCardNumber = (string)results[0];
                        saveCartVersionedDataRequest.SalesTransaction.LoyaltyCardId = loyalyCardNumber;
                    }
                }
            }
Example #7
0
            public static void ChangeShiftStatus(ChangeShiftStatusRequest request, ChangeShiftStatusResponse response)
            {
                ThrowIf.Null(request, "CreateShiftRequest");
                ThrowIf.Null(response, "CreateShiftResponse");

                InvokeExtensionMethodRealtimeRequest extensionRequest = new InvokeExtensionMethodRealtimeRequest(
                    "ChangeShiftStatus",
                    response.Shift.StoreRecordId,
                    response.Shift.TerminalId,
                    response.Shift.ShiftId,
                    Convert.ToInt32(response.Shift.Status),
                    response.Shift.CurrentTerminalId,
                    response.Shift.CurrentStaffId);

                InvokeExtensionMethodRealtimeResponse RTSResponse = request.RequestContext.Execute <InvokeExtensionMethodRealtimeResponse>(extensionRequest);
                ReadOnlyCollection <object>           results     = RTSResponse.Result;

                bool success = Convert.ToBoolean(results[0]);

                if (!success)
                {
                    using (var databaseContext = new DatabaseContext(request))
                    {
                        ParameterSet parameters = new ParameterSet();
                        parameters["@CHANNEL"]           = response.Shift.StoreRecordId;
                        parameters["@TERMINALID"]        = response.Shift.TerminalId;
                        parameters["@SHIFTID"]           = response.Shift.ShiftId;
                        parameters["@STATUS"]            = response.Shift.Status;
                        parameters["@STATUSDATETIMEUTC"] = response.Shift.StatusDateTime;
                        parameters["@CURRENTSTAFFID"]    = response.Shift.CurrentStaffId;
                        parameters["@CURRENTTERMINALID"] = response.Shift.CurrentTerminalId;

                        databaseContext.ExecuteStoredProcedureNonQuery("[ext].[ChangeShiftStaus]", parameters);
                    }
                }
            }