public static void SetOrderButtons(ApplicationDbContext db, IPrincipal user, OfferManageView view, out bool?displayAcceptButton, out bool?displayRejectButton, out bool?displayCounterButton, out bool?displayOfferButton) { //Get settings for logged in user AppUserSettings settings = AppUserSettingsHelpers.GetAppUserSettingsForUser(db, user); Guid acceptedAuthorisationId = DataHelpers.GetAuthorisationId(settings.OffersAcceptedAuthorisationManageViewLevel, user); Guid rejectedAuthorisationId = DataHelpers.GetAuthorisationId(settings.OffersRejectedAuthorisationManageViewLevel, user); Guid returnedAuthorisationId = DataHelpers.GetAuthorisationId(settings.OffersReturnedAuthorisationManageViewLevel, user); //Set buttons displayAcceptButton = true; displayRejectButton = true; displayCounterButton = true; displayOfferButton = true; if (view.InhouseOffer) { switch (view.OfferAppUserSettings.OffersAcceptedAuthorisationManageViewLevel) { case GeneralEnums.InternalSearchLevelEnum.Company: if (view.OfferDetails.OfferOriginatorCompanyId != acceptedAuthorisationId) { displayAcceptButton = false; } break; case GeneralEnums.InternalSearchLevelEnum.Branch: if (view.OfferDetails.OfferOriginatorBranchId != acceptedAuthorisationId) { displayAcceptButton = false; } break; case GeneralEnums.InternalSearchLevelEnum.User: if (view.OfferDetails.OfferOriginatorAppUserId != acceptedAuthorisationId) { displayAcceptButton = false; } break; case GeneralEnums.InternalSearchLevelEnum.Group: //LSLSLS TO BE DONE WHEN GROUPS ADDED break; } switch (view.OfferAppUserSettings.OffersRejectedAuthorisationManageViewLevel) { case GeneralEnums.InternalSearchLevelEnum.Company: if (view.OfferDetails.OfferOriginatorCompanyId != rejectedAuthorisationId) { displayRejectButton = false; } break; case GeneralEnums.InternalSearchLevelEnum.Branch: if (view.OfferDetails.OfferOriginatorBranchId != rejectedAuthorisationId) { displayRejectButton = false; } break; case GeneralEnums.InternalSearchLevelEnum.User: if (view.OfferDetails.OfferOriginatorAppUserId != rejectedAuthorisationId) { displayRejectButton = false; } break; case GeneralEnums.InternalSearchLevelEnum.Group: //LSLSLS TO BE DONE WHEN GROUPS ADDED break; } switch (view.OfferAppUserSettings.OffersReturnedAuthorisationManageViewLevel) { case GeneralEnums.InternalSearchLevelEnum.Company: if (view.OfferDetails.OfferOriginatorCompanyId != returnedAuthorisationId) { displayOfferButton = false; } break; case GeneralEnums.InternalSearchLevelEnum.Branch: if (view.OfferDetails.OfferOriginatorBranchId != returnedAuthorisationId) { displayOfferButton = false; } break; case GeneralEnums.InternalSearchLevelEnum.User: if (view.OfferDetails.OfferOriginatorAppUserId != returnedAuthorisationId) { displayOfferButton = false; } break; case GeneralEnums.InternalSearchLevelEnum.Group: //LSLSLS TO BE DONE WHEN GROUPS ADDED break; } } else { switch (view.ListingAppUserSettings.OffersAcceptedAuthorisationManageViewLevel) { case GeneralEnums.InternalSearchLevelEnum.Company: if (view.OfferDetails.ListingOriginatorCompanyId != acceptedAuthorisationId) { displayAcceptButton = false; } break; case GeneralEnums.InternalSearchLevelEnum.Branch: if (view.OfferDetails.ListingOriginatorBranchId != acceptedAuthorisationId) { displayAcceptButton = false; } break; case GeneralEnums.InternalSearchLevelEnum.User: if (view.OfferDetails.ListingOriginatorAppUserId != acceptedAuthorisationId) { displayAcceptButton = false; } break; case GeneralEnums.InternalSearchLevelEnum.Group: //LSLSLS TO BE DONE WHEN GROUPS ADDED break; } switch (view.ListingAppUserSettings.OffersRejectedAuthorisationManageViewLevel) { case GeneralEnums.InternalSearchLevelEnum.Company: if (view.OfferDetails.ListingOriginatorCompanyId != rejectedAuthorisationId) { displayRejectButton = false; } break; case GeneralEnums.InternalSearchLevelEnum.Branch: if (view.OfferDetails.ListingOriginatorBranchId != rejectedAuthorisationId) { displayRejectButton = false; } break; case GeneralEnums.InternalSearchLevelEnum.User: if (view.OfferDetails.ListingOriginatorAppUserId != rejectedAuthorisationId) { displayRejectButton = false; } break; case GeneralEnums.InternalSearchLevelEnum.Group: //LSLSLS TO BE DONE WHEN GROUPS ADDED break; } switch (view.ListingAppUserSettings.OffersReturnedAuthorisationManageViewLevel) { case GeneralEnums.InternalSearchLevelEnum.Company: if (view.OfferDetails.ListingOriginatorCompanyId != returnedAuthorisationId) { displayCounterButton = false; } break; case GeneralEnums.InternalSearchLevelEnum.Branch: if (view.OfferDetails.ListingOriginatorBranchId != returnedAuthorisationId) { displayCounterButton = false; } break; case GeneralEnums.InternalSearchLevelEnum.User: if (view.OfferDetails.ListingOriginatorAppUserId != returnedAuthorisationId) { displayCounterButton = false; } break; case GeneralEnums.InternalSearchLevelEnum.Group: //LSLSLS TO BE DONE WHEN GROUPS ADDED break; } } }
public static void SetOrderButtons(ApplicationDbContext db, IPrincipal user, Order order, bool orderOut, out bool?displayDespatchButton, out bool?displayDeliveredButton, out bool?displayReceivedButton, out bool?displayCollectedButton, out bool?displayClosedButton) { //Get settings for logged in user AppUserSettings settings = AppUserSettingsHelpers.GetAppUserSettingsForUser(db, user); //Set the authorisation levels and IDs for button activation on form InternalSearchLevelEnum despatchedAuthorisationLevel = settings.OrdersDespatchedAuthorisationManageViewLevel; Guid despatchedAuthorisationId = DataHelpers.GetAuthorisationId(settings.OrdersDespatchedAuthorisationManageViewLevel, user); InternalSearchLevelEnum deliveredAuthorisationLevel = settings.OrdersDeliveredAuthorisationManageViewLevel; Guid deliveredAuthorisationId = DataHelpers.GetAuthorisationId(settings.OrdersDeliveredAuthorisationManageViewLevel, user); InternalSearchLevelEnum receivedAuthorisationLevel = settings.OrdersReceivedAuthorisationManageViewLevel; Guid receivedAuthorisationId = DataHelpers.GetAuthorisationId(settings.OrdersReceivedAuthorisationManageViewLevel, user); InternalSearchLevelEnum collectedAuthorisationLevel = settings.OrdersCollectedAuthorisationManageViewLevel; Guid collectedAuthorisationId = DataHelpers.GetAuthorisationId(settings.OrdersCollectedAuthorisationManageViewLevel, user); InternalSearchLevelEnum closedAuthorisationLevel = settings.OrdersClosedAuthorisationManageViewLevel; Guid closedAuthorisationId = DataHelpers.GetAuthorisationId(settings.OrdersClosedAuthorisationManageViewLevel, user); //set buttons if (orderOut) { displayDespatchButton = true; displayDeliveredButton = true; displayReceivedButton = null; displayCollectedButton = null; displayClosedButton = true; switch (despatchedAuthorisationLevel) { case InternalSearchLevelEnum.Company: if (order.OrderOriginatorCompanyId != despatchedAuthorisationId && order.OfferOriginatorCompanyId != despatchedAuthorisationId) { displayDespatchButton = false; } break; case InternalSearchLevelEnum.Branch: if (order.OrderOriginatorBranchId != despatchedAuthorisationId && order.OfferOriginatorBranchId != despatchedAuthorisationId) { displayDespatchButton = false; } break; case InternalSearchLevelEnum.User: if (order.OrderOriginatorAppUserId != despatchedAuthorisationId && order.OfferOriginatorAppUserId != despatchedAuthorisationId) { displayDespatchButton = false; } break; case InternalSearchLevelEnum.Group: //LSLSLS TO BE DONE WHEN GROUPS ADDED break; } switch (deliveredAuthorisationLevel) { case InternalSearchLevelEnum.Company: if (order.OrderOriginatorCompanyId != deliveredAuthorisationId && order.OfferOriginatorCompanyId != deliveredAuthorisationId) { displayDeliveredButton = false; } break; case InternalSearchLevelEnum.Branch: if (order.OrderOriginatorBranchId != deliveredAuthorisationId && order.OfferOriginatorBranchId != deliveredAuthorisationId) { displayDespatchButton = false; } break; case InternalSearchLevelEnum.User: if (order.OrderOriginatorAppUserId != deliveredAuthorisationId && order.OfferOriginatorAppUserId != deliveredAuthorisationId) { displayDespatchButton = false; } break; case InternalSearchLevelEnum.Group: //LSLSLS TO BE DONE WHEN GROUPS ADDED break; } switch (closedAuthorisationLevel) { case InternalSearchLevelEnum.Company: if (order.OrderOriginatorCompanyId != closedAuthorisationId && order.OfferOriginatorCompanyId != closedAuthorisationId) { displayClosedButton = false; } break; case InternalSearchLevelEnum.Branch: if (order.OrderOriginatorBranchId != closedAuthorisationId && order.OfferOriginatorBranchId != closedAuthorisationId) { displayClosedButton = false; } break; case InternalSearchLevelEnum.User: if (order.OrderOriginatorAppUserId != closedAuthorisationId && order.OfferOriginatorAppUserId != closedAuthorisationId) { displayClosedButton = false; } break; case InternalSearchLevelEnum.Group: //LSLSLS TO BE DONE WHEN GROUPS ADDED break; } } else { displayDespatchButton = null; displayDeliveredButton = null; displayReceivedButton = true; displayCollectedButton = true; displayClosedButton = true; switch (collectedAuthorisationLevel) { case InternalSearchLevelEnum.Company: if (order.OrderOriginatorCompanyId != collectedAuthorisationId && order.OfferOriginatorCompanyId != collectedAuthorisationId) { displayCollectedButton = false; } break; case InternalSearchLevelEnum.Branch: if (order.OrderOriginatorBranchId != collectedAuthorisationId && order.OfferOriginatorBranchId != collectedAuthorisationId) { displayCollectedButton = false; } break; case InternalSearchLevelEnum.User: if (order.OrderOriginatorAppUserId != collectedAuthorisationId && order.OfferOriginatorAppUserId != collectedAuthorisationId) { displayCollectedButton = false; } break; case InternalSearchLevelEnum.Group: //LSLSLS TO BE DONE WHEN GROUPS ADDED break; } switch (receivedAuthorisationLevel) { case InternalSearchLevelEnum.Company: if (order.OrderOriginatorCompanyId != receivedAuthorisationId && order.OfferOriginatorCompanyId != receivedAuthorisationId) { displayReceivedButton = false; } break; case InternalSearchLevelEnum.Branch: if (order.OrderOriginatorBranchId != receivedAuthorisationId && order.OfferOriginatorBranchId != receivedAuthorisationId) { displayReceivedButton = false; } break; case InternalSearchLevelEnum.User: if (order.OrderOriginatorAppUserId != receivedAuthorisationId && order.OfferOriginatorAppUserId != receivedAuthorisationId) { displayReceivedButton = false; } break; case InternalSearchLevelEnum.Group: //LSLSLS TO BE DONE WHEN GROUPS ADDED break; } switch (closedAuthorisationLevel) { case InternalSearchLevelEnum.Company: if (order.OrderOriginatorCompanyId != closedAuthorisationId && order.OfferOriginatorCompanyId != closedAuthorisationId) { displayClosedButton = false; } break; case InternalSearchLevelEnum.Branch: if (order.OrderOriginatorBranchId != closedAuthorisationId && order.OfferOriginatorBranchId != closedAuthorisationId) { displayClosedButton = false; } break; case InternalSearchLevelEnum.User: if (order.OrderOriginatorAppUserId != closedAuthorisationId && order.OfferOriginatorAppUserId != closedAuthorisationId) { displayClosedButton = false; } break; case InternalSearchLevelEnum.Group: //LSLSLS TO BE DONE WHEN GROUPS ADDED break; } } }