/// <summary> /// Gets the shift. /// </summary> /// <param name="request">The request.</param> /// <returns>A single entity data service response.</returns> private SingleEntityDataServiceResponse <Shift> GetShift(GetShiftDataRequest request) { ThrowIf.Null(request, "request"); ThrowIf.NullOrWhiteSpace(request.TerminalId, "request.TerminalId"); long channelId = request.RequestContext.GetPrincipal().ChannelId; // Loads shift. ShiftDataQueryCriteria criteria = new ShiftDataQueryCriteria(); criteria.ChannelId = channelId; criteria.TerminalId = request.TerminalId; criteria.ShiftId = request.ShiftId; criteria.SearchByTerminalId = true; criteria.IncludeSharedShifts = true; GetShiftDataDataRequest dataServiceRequest = new GetShiftDataDataRequest(criteria, QueryResultSettings.SingleRecord); Shift shift = request.RequestContext.Runtime.Execute <EntityDataServiceResponse <Shift> >(dataServiceRequest, request.RequestContext).PagedEntityCollection.FirstOrDefault(); if (shift != null) { // Load shift tender lines. PagedResult <ShiftTenderLine> shiftTenderLines = this.GetShiftEntity <ShiftTenderLine>(string.Empty, ShiftTenderLinesView, request.TerminalId, request.ShiftId, request, queryByPrimaryKey: false); // Load shift account lines. PagedResult <ShiftAccountLine> shiftAccountLines = this.GetShiftEntity <ShiftAccountLine>(string.Empty, ShiftAccountsView, request.TerminalId, request.ShiftId, request, queryByPrimaryKey: false); shift.AccountLines = shiftAccountLines.Results.ToList(); shift.TenderLines = shiftTenderLines.Results.ToList(); } return(new SingleEntityDataServiceResponse <Shift>(shift)); }
private Response GetShiftData(GetShiftDataDataRequest request) { using (SqliteDatabaseContext databaseContext = new SqliteDatabaseContext(request.RequestContext)) { GetShiftDataProcedure procedure = new GetShiftDataProcedure(request.Criteria, databaseContext); return(procedure.Execute()); } }
/// <summary> /// The data service method to get the shift data. /// </summary> /// <param name="request">The get shift data request.</param> /// <returns>A response.</returns> private Response GetShiftData(GetShiftDataDataRequest request) { using (SqlServerDatabaseContext databaseContext = new SqlServerDatabaseContext(request)) { GetShiftDataProcedure procedure = new GetShiftDataProcedure(request, databaseContext); return(procedure.Execute(request.QueryResultSettings)); } }
internal static IList <Shift> GetAllStoreShiftsWithStatus(RequestContext context, long channelId, ShiftStatus status, QueryResultSettings settings, bool includeSharedShifts) { ShiftDataQueryCriteria criteria = new ShiftDataQueryCriteria { ChannelId = channelId, Status = (int)status, IncludeSharedShifts = includeSharedShifts }; GetShiftDataDataRequest dataServiceRequest = new GetShiftDataDataRequest(criteria, settings); return(context.Runtime.Execute <EntityDataServiceResponse <Shift> >(dataServiceRequest, context).PagedEntityCollection.Results); }
internal static IList <Shift> GetAllOpenedShiftsOnTerminal(RequestContext context, long channelId, string terminalId, bool includeSharedShifts) { ThrowIf.NullOrWhiteSpace(terminalId, "terminalId"); ShiftDataQueryCriteria criteria = new ShiftDataQueryCriteria { ChannelId = channelId, TerminalId = terminalId, Status = (int)ShiftStatus.Open, SearchByCurrentTerminalId = true, IncludeSharedShifts = includeSharedShifts }; GetShiftDataDataRequest dataServiceRequest = new GetShiftDataDataRequest(criteria, QueryResultSettings.AllRecords); return(context.Runtime.Execute <EntityDataServiceResponse <Shift> >(dataServiceRequest, context).PagedEntityCollection.Results); }
internal static IList <Shift> GetShiftsForStaffWithStatus(RequestContext context, long channelId, string staffId, ShiftStatus status, QueryResultSettings settings, bool includeSharedShifts) { ShiftDataQueryCriteria criteria = new ShiftDataQueryCriteria { ChannelId = channelId, Status = (int)status, SearchByStaffId = true, IncludeSharedShifts = includeSharedShifts }; if (!string.IsNullOrWhiteSpace(staffId)) { criteria.StaffId = staffId; } GetShiftDataDataRequest dataServiceRequest = new GetShiftDataDataRequest(criteria, settings); return(context.Runtime.Execute <EntityDataServiceResponse <Shift> >(dataServiceRequest, context).PagedEntityCollection.Results); }
/// <summary> /// Gets the current shift and sets it on the context. /// </summary> /// <param name="context">The context.</param> private static void PopulateContextWithShiftInformation(RequestContext context) { ShiftDataQueryCriteria criteria = new ShiftDataQueryCriteria { ChannelId = context.GetPrincipal().ChannelId, TerminalId = context.GetTerminal().TerminalId, StaffId = string.IsNullOrWhiteSpace(context.GetPrincipal().OriginalUserId) ? context.GetPrincipal().UserId : context.GetPrincipal().OriginalUserId, Status = (int)ShiftStatus.Open, SearchByStaffId = true, SearchByCurrentStaffId = true, SearchByTerminalId = true, SearchByCurrentTerminalId = true }; // Get original staff id (not a manager's) during elevated permission operations. GetEmployeePermissionsDataRequest permissionsDataRequest = new GetEmployeePermissionsDataRequest(criteria.StaffId, new ColumnSet()); EmployeePermissions employeePermissions = context.Runtime.Execute <SingleEntityDataServiceResponse <EmployeePermissions> >( permissionsDataRequest, context, skipRequestTriggers: true).Entity; if (employeePermissions != null) { criteria.IncludeSharedShifts = employeePermissions.HasManagerPrivileges || employeePermissions.AllowManageSharedShift || employeePermissions.AllowUseSharedShift || employeePermissions.AllowMultipleShiftLogOn; } GetShiftDataDataRequest dataServiceRequest = new GetShiftDataDataRequest(criteria, QueryResultSettings.SingleRecord); Shift shift = context.Runtime.Execute <EntityDataServiceResponse <Shift> >(dataServiceRequest, context, skipRequestTriggers: true).PagedEntityCollection.Results.FirstOrDefault(); if (shift != null) { // TerminalId is the identifier of the terminal which creates the shift context.GetPrincipal().ShiftId = shift.ShiftId; context.GetPrincipal().ShiftTerminalId = shift.TerminalId; } }
internal static IList <Shift> GetShifts(RequestContext context, long channelId, string staffId, string terminalId, long shiftId, bool includeSharedShifts) { ThrowIf.NullOrWhiteSpace(terminalId, "terminalId"); ShiftDataQueryCriteria criteria = new ShiftDataQueryCriteria { ChannelId = channelId, TerminalId = terminalId, ShiftId = shiftId, SearchByTerminalId = true, IncludeSharedShifts = includeSharedShifts }; if (!string.IsNullOrWhiteSpace(staffId)) { criteria.StaffId = staffId; criteria.SearchByStaffId = true; criteria.SearchByCurrentStaffId = true; } GetShiftDataDataRequest dataServiceRequest = new GetShiftDataDataRequest(criteria, QueryResultSettings.SingleRecord); return(context.Runtime.Execute <EntityDataServiceResponse <Shift> >(dataServiceRequest, context).PagedEntityCollection.Results); }
/// <summary> /// Initializes a new instance of the <see cref="GetShiftDataProcedure"/> class. /// </summary> /// <param name="request">The request object.</param> /// <param name="databaseContext">The database context object.</param> public GetShiftDataProcedure(GetShiftDataDataRequest request, SqlServerDatabaseContext databaseContext) { this.request = request; this.databaseContext = databaseContext; }