- jQuery von Version 3.4.1 auf Version 3.6.0 geupdated
- Beim Laden von Objekten aus der Datenbank wird vorher geprüft, ob der angemeldete Benutzer das Recht hat, das Objekt zu sehen.
149 lines
5.0 KiB
C#
149 lines
5.0 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Web.Mvc;
|
|
using BeWo.View.Navigation.Filter;
|
|
using BeWoPlanerMobil.Models;
|
|
using BeWoPlanerMobil.Service;
|
|
using BeWoPlanerMobil.Util;
|
|
using BS.Shared.Core;
|
|
using BS.Shared.DataContracts.Compact;
|
|
|
|
namespace BeWoPlanerMobil.Controllers
|
|
{
|
|
public class CustomerController : AbstractBaseController
|
|
{
|
|
private CustomerModel _Model;
|
|
public CustomerModel Model
|
|
{
|
|
get
|
|
{
|
|
if (!MobileSessionFacade.IsUserLoggedIn())
|
|
{
|
|
Logout();
|
|
return null;
|
|
}
|
|
|
|
if (((CustomerModel) Session[ModelSessionConstants.CustomerModelKey])?.Employee == null)
|
|
{
|
|
_Model = new CustomerModel{Employee = MobileSessionFacade.LoggedInEmployee};
|
|
Session[ModelSessionConstants.CustomerModelKey] = _Model;
|
|
}
|
|
else
|
|
{
|
|
_Model = (CustomerModel)Session[ModelSessionConstants.CustomerModelKey];
|
|
}
|
|
|
|
return _Model;
|
|
}
|
|
}
|
|
|
|
[Authorize]
|
|
public ActionResult Customer()
|
|
{
|
|
if (!MobileSessionFacade.IsUserLoggedIn() || Request.Browser.Browser.Equals("InternetExplorer"))
|
|
{
|
|
return Logout();
|
|
}
|
|
|
|
var customerFilter = MobileUserSettingsUtils.GetSettingValueAsEnum(AbstractModel.UserSettings, SettingsKeys.CustomerFilterCustomers, CustomerFilterEnum.MyCustomer);
|
|
|
|
Model.SelectedCustomerFilter = customerFilter;
|
|
|
|
InitViewModel();
|
|
|
|
return View(Model);
|
|
}
|
|
|
|
private void InitViewModel()
|
|
{
|
|
if(Model == null || !MobileSessionFacade.IsUserLoggedIn() || Request.Browser.Browser.Equals("InternetExplorer"))
|
|
{
|
|
Logout();
|
|
}
|
|
|
|
if(Model.Employee?.EmployeeOid.HasValue ?? false)
|
|
{
|
|
Model.Customers = EmployeeService.GetActiveCustomersForEmployee(Model.Employee.EmployeeOid.Value, Model.SelectedCustomerFilter).OrderBy(customer => customer.LastName).ToList();
|
|
}
|
|
else
|
|
{
|
|
Model.Customers = new List<CompactCustomerDC>();
|
|
}
|
|
}
|
|
|
|
[Authorize]
|
|
public ActionResult PreselectCustomer(long? customerOid)
|
|
{
|
|
if (Model == null || !MobileSessionFacade.IsUserLoggedIn() || Request.Browser.Browser.Equals("InternetExplorer"))
|
|
{
|
|
return Logout();
|
|
}
|
|
|
|
InitViewModel();
|
|
|
|
if (customerOid.HasValue && customerOid > 0 && Model.Customers.Any(customer => customer.CustomerOid.Equals(customerOid.Value)))
|
|
{
|
|
Model.SelectedCustomerOid = customerOid;
|
|
Model.SelectedCustomer = CustomerService.LoadCustomer(customerOid.Value);
|
|
}
|
|
|
|
return RedirectToActionPermanent("Customer");
|
|
}
|
|
|
|
[Authorize]
|
|
[HttpPost]
|
|
public ActionResult SelectCustomer(FormCollection formCollection)
|
|
{
|
|
try
|
|
{
|
|
if (Model == null || !MobileSessionFacade.IsUserLoggedIn() || Request.Browser.Browser.Equals("InternetExplorer"))
|
|
{
|
|
return Logout();
|
|
}
|
|
|
|
var selectedCustomerOidString = formCollection[FormCollectionConstants.SelectedCustomerOidKey];
|
|
if (long.TryParse(selectedCustomerOidString, out var selectedCustomerOid))
|
|
{
|
|
var isCustomerInList = Model.Customers.Any(customer => customer.CustomerOid == selectedCustomerOid);
|
|
|
|
if(isCustomerInList)
|
|
{
|
|
Model.SelectedCustomerOid = selectedCustomerOid == -1 ? (long?)null : selectedCustomerOid;
|
|
Model.SelectedCustomer = selectedCustomerOid != -1 ? CustomerService.LoadCustomer(selectedCustomerOid) : null;
|
|
}
|
|
}
|
|
|
|
return RedirectToActionPermanent("Customer");
|
|
}
|
|
catch (Exception exception)
|
|
{
|
|
Log.Error(exception.Message, exception);
|
|
}
|
|
|
|
return RedirectToActionPermanent("Customer");
|
|
}
|
|
|
|
[HttpPost]
|
|
[Authorize]
|
|
public ActionResult SetCustomerFilter(FormCollection formCollection)
|
|
{
|
|
if(Model == null || !MobileSessionFacade.IsUserLoggedIn() || Request.Browser.Browser.Equals("InternetExplorer"))
|
|
{
|
|
return Logout();
|
|
}
|
|
|
|
var selectedCustomerFilter = formCollection[nameof(Model.SelectedCustomerFilter)];
|
|
|
|
if(!Enum.TryParse(selectedCustomerFilter, out CustomerFilterEnum customerFilter))
|
|
{
|
|
customerFilter = CustomerFilterEnum.MyCustomer;
|
|
}
|
|
|
|
UpdateSettings(SettingsKeys.CustomerFilterCustomers, customerFilter.ToString());
|
|
|
|
return RedirectToActionPermanent("Customer");
|
|
}
|
|
}
|
|
}
|