public bool Paste() { var filter = new AccessTemplateFilter { OrganisationUIDs = new List<Guid> { AccessTemplate.OrganisationUID } }; var accessTemplates = AccessTemplateHelper.Get(filter); AccessTemplate.Name = CopyHelper.CopyName(AccessTemplate.Name, accessTemplates.Select(x => x.Name)); AccessTemplate.UID = Guid.NewGuid(); return Save(true); }
public HRFilter() { EmployeeFilter = new EmployeeFilter(); DepartmentFilter = new DepartmentFilter(); PositionFilter = new PositionFilter(); AdditionalColumnTypeFilter = new AdditionalColumnTypeFilter(); AccessTemplateFilter = new AccessTemplateFilter(); PassCardTemplateFilter = new PassCardTemplateFilter(); CardFilter = new CardFilter(); }
public JsonResult GetOrganisations(AccessTemplateFilter accessTemplateFilter) { var accessTemplatesViewModel = new AccessTemplatesViewModel(); accessTemplatesViewModel.Initialize(new AccessTemplateFilter { OrganisationUIDs = accessTemplateFilter.OrganisationUIDs, LogicalDeletationType = accessTemplateFilter.LogicalDeletationType }); dynamic result = new { page = 1, total = 100, records = 100, rows = accessTemplatesViewModel.Organisations, }; return Json(result, JsonRequestBehavior.AllowGet); }
public void Initialize(Guid organisationId, Guid? id) { if (id.HasValue) { var filter = new AccessTemplateFilter {UIDs = new List<Guid> {id.Value}}; AccessTemplate = AccessTemplateHelper.Get(filter).Single(); } else { AccessTemplate = new AccessTemplate() { Name = "Новый шаблон доступа", OrganisationUID = organisationId }; } var organisation = OrganisationHelper.Get(new OrganisationFilter { UIDs = new List<Guid> { organisationId } }).FirstOrDefault(); Doors = GKManager.DeviceConfiguration.Doors.Where(door => organisation.DoorUIDs.Any(y => y == door.UID)) .Select(door => new AccessDoorModel(door, AccessTemplate.CardDoors, GKScheduleHelper.GetSchedules())) .ToList(); }
protected override DataSet CreateDataSet(DataProvider dataProvider) { var filter = GetFilter<EmployeeAccessReportFilter>(); if (!filter.PassCardActive && !filter.PassCardForcing && !filter.PassCardLocked && !filter.PassCardOnceOnly && !filter.PassCardPermanent && !filter.PassCardTemprorary) { filter.PassCardActive = true; filter.PassCardForcing = true; filter.PassCardLocked = true; filter.PassCardOnceOnly = true; filter.PassCardPermanent = true; filter.PassCardTemprorary = true; } var cardFilter = new CardFilter(); cardFilter.EmployeeFilter = dataProvider.GetCardEmployeeFilter(filter); cardFilter.DeactivationType = LogicalDeletationType.Active; cardFilter.LogicalDeletationType = LogicalDeletationType.Active; var cardsResult = dataProvider.DbService.CardTranslator.Get(cardFilter); var dataSet = new EmployeeAccessDataSet(); if (!cardsResult.HasError) { dataProvider.GetEmployees(cardsResult.Result.Select(item => item.EmployeeUID.GetValueOrDefault())); var accessTemplateFilter = new AccessTemplateFilter() { UIDs = cardsResult.Result.Where(item => item.AccessTemplateUID.HasValue && item.AccessTemplateUID != Guid.Empty).Select(item => item.AccessTemplateUID.Value).ToList() }; var accessTemplates = dataProvider.DbService.AccessTemplateTranslator.Get(accessTemplateFilter); var zoneMap = new Dictionary<Guid, Tuple<Tuple<GKSKDZone, string>, Tuple<GKSKDZone, string>>>(); GKManager.Doors.ForEach(door => { if (door != null && !zoneMap.ContainsKey(door.UID)) { GKSKDZone enterZone = null; if (filter.Zones.IsEmpty() || filter.Zones.Contains(door.EnterZoneUID)) { enterZone = GKManager.SKDZones.FirstOrDefault(x => x.UID == door.EnterZoneUID); } GKSKDZone exitZone = null; if (filter.Zones.IsEmpty() || filter.Zones.Contains(door.ExitZoneUID)) { exitZone = GKManager.SKDZones.FirstOrDefault(x => x.UID == door.ExitZoneUID); } Tuple<GKSKDZone, string> enterZoneTuple = null; if (enterZone != null) { enterZoneTuple = new Tuple<GKSKDZone, string>(enterZone, enterZone.PresentationName); } Tuple<GKSKDZone, string> exitZoneTuple = null; if (exitZone != null) { exitZoneTuple = new Tuple<GKSKDZone, string>(exitZone, exitZone.PresentationName); } var value = new Tuple<Tuple<GKSKDZone, string>, Tuple<GKSKDZone, string>>(enterZoneTuple, exitZoneTuple); zoneMap.Add(door.UID, value); } }); foreach (var card in cardsResult.Result) { var employee = dataProvider.GetEmployee(card.EmployeeUID.GetValueOrDefault()); var addedZones = new List<Guid>(); foreach (var door in card.CardDoors) AddRow(dataSet, employee, card, door, null, zoneMap, addedZones); if (!accessTemplates.HasError && card.AccessTemplateUID.HasValue) { var cardDoorUIDs = card.CardDoors.Select(item => item.DoorUID); var accessTemplate = accessTemplates.Result.FirstOrDefault(item => item.UID == card.AccessTemplateUID.Value); if (accessTemplates != null) foreach (var door in accessTemplate.CardDoors.Where(item => !cardDoorUIDs.Contains(item.DoorUID))) AddRow(dataSet, employee, card, door, accessTemplate, zoneMap, addedZones); } } } return dataSet; }
public static IEnumerable<AccessTemplate> Get(AccessTemplateFilter filter) { var result = ClientManager.RubezhService.GetAccessTemplates(filter); return Common.ThrowErrorIfExists(result); }
protected override DataSet CreateDataSet(DataProvider dataProvider) { var filter = GetFilter<EmployeeDoorsReportFilter>(); if (!filter.PassCardActive && !filter.PassCardForcing && !filter.PassCardLocked && !filter.PassCardOnceOnly && !filter.PassCardPermanent && !filter.PassCardTemprorary) { filter.PassCardActive = true; filter.PassCardForcing = true; filter.PassCardLocked = true; filter.PassCardOnceOnly = true; filter.PassCardPermanent = true; filter.PassCardTemprorary = true; } if (!filter.ZoneIn && !filter.ZoneOut) { filter.ZoneIn = true; filter.ZoneOut = true; } if (!filter.ScheduleEnter && !filter.ScheduleExit) { filter.ScheduleEnter = true; filter.ScheduleExit = true; } var cardFilter = new CardFilter(); cardFilter.EmployeeFilter = dataProvider.GetCardEmployeeFilter(filter); cardFilter.DeactivationType = LogicalDeletationType.Active; cardFilter.LogicalDeletationType = LogicalDeletationType.Active; var cardsResult = dataProvider.DbService.CardTranslator.Get(cardFilter); var dataSet = new EmployeeDoorsDataSet(); if (!cardsResult.HasError) { dataProvider.GetEmployees(cardsResult.Result.Select(item => item.EmployeeUID.GetValueOrDefault())); var accessTemplateFilter = new AccessTemplateFilter() { UIDs = cardsResult.Result.Where(item => item.AccessTemplateUID.HasValue && item.AccessTemplateUID != Guid.Empty).Select(item => item.AccessTemplateUID.Value).ToList() }; var accessTemplates = dataProvider.DbService.AccessTemplateTranslator.Get(accessTemplateFilter); var doorMap = new Dictionary<Guid, CommonDoor>(); foreach (var door in GKManager.Doors) { var commonDoor = new CommonDoor(door); if (!filter.Zones.IsEmpty()) { if ((filter.ZoneIn && filter.Zones.Contains(door.EnterZoneUID)) || (filter.ZoneOut && filter.Zones.Contains(door.ExitZoneUID))) doorMap.Add(door.UID, commonDoor); } else { doorMap.Add(door.UID, commonDoor); } } Dictionary<int, string> intervalMap = new Dictionary<int, string>(); var schedulesResult = dataProvider.DbService.GKScheduleTranslator.Get(); if (!schedulesResult.HasError) { foreach (var interval in schedulesResult.Result) { intervalMap.Add(interval.No, interval.Name); } } foreach (var card in cardsResult.Result) { IEnumerable<CardDoor> cardDoors = card.CardDoors; if (!accessTemplates.HasError && card.AccessTemplateUID.HasValue && card.AccessTemplateUID.Value != Guid.Empty) { var accessTemplate = accessTemplates.Result.FirstOrDefault(item => item.UID == card.AccessTemplateUID.Value); var cardDoorUIDs = card.CardDoors.Select(item => item.DoorUID); if (accessTemplate != null) cardDoors = cardDoors.Union(accessTemplate.CardDoors.Where(item => !cardDoorUIDs.Contains(item.DoorUID))); } var employee = dataProvider.GetEmployee(card.EmployeeUID.GetValueOrDefault()); if (!filter.Schedules.IsEmpty()) cardDoors = cardDoors.Where(item => (filter.ScheduleEnter && filter.Schedules.Contains(item.EnterScheduleNo)) || (filter.ScheduleExit && filter.Schedules.Contains(item.ExitScheduleNo))); foreach (var cardDoor in cardDoors) if (doorMap.ContainsKey(cardDoor.DoorUID)) { var door = doorMap[cardDoor.DoorUID]; var dataRow = dataSet.Data.NewDataRow(); dataRow.Type = card.GKCardType.ToDescription(); dataRow.Number = card.Number.ToString(); if (employee != null) { dataRow.Employee = employee.Name; dataRow.Organisation = employee.Organisation; dataRow.Department = employee.Department; dataRow.Position = employee.Position; } dataRow.ZoneIn = door.EnterZoneName; dataRow.ZoneOut = door.ExitZoneName; dataRow.NoEnterZone = door.NoEnterZone; dataRow.NoExitZone = door.NoExitZone; if (intervalMap.ContainsKey(cardDoor.EnterScheduleNo)) dataRow.Enter = intervalMap[cardDoor.EnterScheduleNo]; if (door.Type != GKDoorType.OneWay && intervalMap.ContainsKey(cardDoor.ExitScheduleNo)) dataRow.Exit = intervalMap[cardDoor.ExitScheduleNo]; dataRow.AccessPoint = door.Name; dataRow.NoDoor = door.NoDoor; dataSet.Data.Rows.Add(dataRow); } } } return dataSet; }
public void Initialize() { DepartmentFilter = new DepartmentFilter() { OrganisationUIDs = Filter.OrganisationUIDs, LogicalDeletationType = Filter.LogicalDeletationType }; PositionFilter = new PositionFilter() { OrganisationUIDs = Filter.OrganisationUIDs, LogicalDeletationType = Filter.LogicalDeletationType }; AdditionalColumnTypeFilter = new AdditionalColumnTypeFilter() { OrganisationUIDs = Filter.OrganisationUIDs, LogicalDeletationType = Filter.LogicalDeletationType }; CardFilter = new CardFilter() { OrganisationUIDs = Filter.OrganisationUIDs, EmployeeFilter = Filter.EmployeeFilter, }; AccessTemplateFilter = new AccessTemplateFilter() { OrganisationUIDs = Filter.OrganisationUIDs, LogicalDeletationType = Filter.LogicalDeletationType }; PassCardTemplateFilter = new PassCardTemplateFilter() { OrganisationUIDs = Filter.OrganisationUIDs, LogicalDeletationType = Filter.LogicalDeletationType }; InitializeEmployeeFilter(); DepartmentsViewModel.Initialize(DepartmentFilter); PositionsViewModel.Initialize(PositionFilter); AdditionalColumnTypesViewModel.Initialize(AdditionalColumnTypeFilter); CardsViewModel.Initialize(CardFilter); AccessTemplatesViewModel.Initialize(AccessTemplateFilter); PassCardTemplatesViewModel.Initialize(PassCardTemplateFilter); OrganisationsViewModel.Initialize(Filter.LogicalDeletationType); EmployeesViewModel.Initialize(EmployeeFilter); }
public OperationResult<List<AccessTemplate>> GetAccessTemplates(Guid clientUID, AccessTemplateFilter filter) { return SafeOperationCall(clientUID, () => RubezhService.GetAccessTemplates(clientUID, filter), "GetAccessTemplates"); }
public OperationResult<List<AccessTemplate>> GetAccessTemplates(AccessTemplateFilter filter) { return SafeOperationCall(() => { var rubezhService = RubezhServiceFactory.Create(TimeSpan.FromMinutes(10)); using (rubezhService as IDisposable) return rubezhService.GetAccessTemplates(RubezhServiceFactory.UID, filter); }, "GetAccessTemplates"); }
private void InitializeAccessTemplates() { AvailableAccessTemplates = new ObservableCollection<AccessTemplate>(); AvailableAccessTemplates.Add(new AccessTemplate() { Name = "<нет>" }); var accessTemplateFilter = new AccessTemplateFilter(); accessTemplateFilter.OrganisationUIDs.Add(Organisation.UID); var accessTemplates = AccessTemplateHelper.Get(accessTemplateFilter); if (accessTemplates != null) { foreach (var accessTemplate in accessTemplates) AvailableAccessTemplates.Add(accessTemplate); } SelectedAccessTemplate = AvailableAccessTemplates.FirstOrDefault(x => x.UID == Card.AccessTemplateUID); }
public JsonNetResult GetEmployeeCardDetails(Guid? organisationId, Guid? cardId) { if (!organisationId.HasValue) { return new JsonNetResult { Data = new EmployeeCardModel { Card = new SKDCard(), //SelectedStopListCard = new SKDCard(), //SelectedSchedule = new GKSchedule(), //SelectedAccessTemplate = new AccessTemplate(), } }; } SKDCard card; if (cardId.HasValue) { card = CardHelper.GetSingle(cardId.Value); } else { card = new SKDCard { EndDate = DateTime.Now.AddYears(1), GKCardType = GKCardType.Employee, }; } var cardModel = new EmployeeCardModel(); cardModel.Card = card; cardModel.Schedules = GKScheduleHelper.GetSchedules(); cardModel.SelectedSchedule = cardModel.Schedules.FirstOrDefault(s => s.No == cardModel.Card.GKLevelSchedule); var operationResult = CardHelper.Get(new CardFilter { DeactivationType = LogicalDeletationType.Deleted }); cardModel.StopListCards = operationResult.Where(x => x.IsInStopList).ToList(); cardModel.AvailableGKControllers = GKManager.Devices.Where(x => x.DriverType == GKDriverType.GK) .Select(d => { var isChecked = !cardId.HasValue; isChecked |= card.GKControllerUIDs != null && card.GKControllerUIDs.Contains(d.UID); return new GKControllerModel(d.UID, isChecked, d.PresentationName); }).ToList(); var organisation = OrganisationHelper.Get(new OrganisationFilter {UIDs = new List<Guid>{organisationId.Value}}).FirstOrDefault(); cardModel.Doors = GKManager.DeviceConfiguration.Doors.Where(door => organisation.DoorUIDs.Any(y => y == door.UID)) .Select(door => new AccessDoorModel(door, card.CardDoors, cardModel.Schedules)) .ToList(); var accessTemplateFilter = new AccessTemplateFilter { OrganisationUIDs = new List<Guid> { organisationId.Value } }; cardModel.AvailableAccessTemplates = new List<AccessTemplate> { new AccessTemplate { UID = Guid.Empty, Name = "<нет>" } } .Concat(AccessTemplateHelper.Get(accessTemplateFilter)) .ToList(); var selectedAccessTemplate = cardModel.AvailableAccessTemplates.FirstOrDefault(x => x.UID == cardModel.Card.AccessTemplateUID); cardModel.SelectedAccessTemplate = selectedAccessTemplate; return new JsonNetResult { Data = cardModel }; }
public OperationResult<List<AccessTemplate>> GetAccessTemplates(Guid clientUID, AccessTemplateFilter filter) { using (var databaseService = new RubezhDAL.DataClasses.DbService()) { return databaseService.AccessTemplateTranslator.Get(filter); } }