Ejemplo n.º 1
0
        public ActionResult <RelayDevice> relayChanged(int areaId, string deviceName, int swState)
        {
            var clientIP = HttpContext.Features.Get <IHttpConnectionFeature>()?.RemoteIpAddress.ToString();

            lock (clientIP)
            {
                _logger.LogInformation($"relayChanged() Entered. areaId: {areaId} deviceName: {deviceName} state: {swState} from {clientIP}");

                RelayDevice relay = relayDevices.Where(s => s.area == (Enums.ControlledAreas)areaId && s.deviceName == deviceName).FirstOrDefault();

                if (relay == null)
                {
                    return(NotFound());
                }

                if (relay.swState != swState)
                {
                    //relay.swState = swState;
                    //AreaEventType aet = swState > 0 ? AreaEventType.SwitchOn : AreaEventType.SwitchOff;
                    //AreaEvent evt = new AreaEvent(relay.area, deviceName, aet, relay.mcu.ipAddress, AreaEventStatus.Complete);
                    //relay.Events.Add(evt);
                    //EventLogger.logEvent(evt);
                    relay.setState(swState, true);
                }
                else
                {
                    _logger.LogInformation($"switchChanged() Done. State was unchanged.");
                }
                return(relay);
            }
        }
Ejemplo n.º 2
0
        private ObservableCollection <RelayDeviceModel> getCollectionDeviceModel(IEnumerable <RelayDevice> relayDevices)
        {
            ObservableCollection <RelayDeviceModel> deviceModels = new ObservableCollection <RelayDeviceModel>();
            List <RelayDevice> devices = dataBase.RelayDevices.GetAll().Intersect(relayDevices).ToList();

            foreach (RelayDevice device in devices)
            {
                RelayDevice      relayDevice      = dataBase.RelayDevices.Read(device.MaintainedEquipmentId);
                RelayDeviceModel relayDeviceModel = new RelayDeviceModel();
                relayDeviceModel.MaintainedEquipmentId = relayDevice.MaintainedEquipmentId;
                relayDeviceModel.Name              = relayDevice.Name;
                relayDeviceModel.InputYear         = relayDevice.InputYear.Value;
                relayDeviceModel.MaintenancePeriod = relayDevice.MaintenancePeriod;
                if (relayDevice.LastRecovery != null)
                {
                    relayDeviceModel.LastRecovery = relayDevice.LastRecovery.Value;
                }
                MaintenanceRecord record = relayDevice.MaintenanceRecords.Where(x => x.ActualMaintenanceDate != null).Last();
                relayDeviceModel.LastMaintenanceDate = record.ActualMaintenanceDate.Value;
                relayDeviceModel.LastMaintenanceType = record.ActualMaintenanceType;
                record = relayDevice.MaintenanceRecords.Where(x => x.ActualMaintenanceDate == null).First();
                relayDeviceModel.PlannedMaintenanceDate = record.PlannedMaintenanceDate;
                relayDeviceModel.PlannedMaintenanceType = record.PlannedMaintenanceType;
                relayDeviceModel.ElementBase            = relayDevice.ElementBase;
                deviceModels.Add(relayDeviceModel);
            }
            return(deviceModels);
        }
Ejemplo n.º 3
0
        public async Task <ActionResult <RelayDevice> > setRelay(int localId, int swState)
        {
            //var ipAddr = HttpContext.Features.Get<IHttpConnectionFeature>()?.RemoteIpAddress;

            var clientIP = HttpContext.Features.Get <IHttpConnectionFeature>()?.RemoteIpAddress.ToString();

            if (clientIP == "::1")
            {
                string[] parts = Environment.GetEnvironmentVariable("HOSTPORT").Split(':');
                clientIP = parts[0];
            }

            _logger.LogInformation($"setRelay() Entered. deviceId: {localId} State {swState} from {clientIP}");

            RelayDevice relay = relayDevices.Where(s => s.localDeviceId == localId).FirstOrDefault();

            if (relay == null)
            {
                return(NotFound());
            }
            else             //if (sw.swState != swState)
            {
                relay.setState(swState, true);
                //relay.swState = swState;
                //AreaEventType evtType = (swState > 0) ? AreaEventType.SwitchOn : AreaEventType.SwitchOff;
                //AreaEvent evt = new AreaEvent(relay.area, relay.deviceName, evtType, clientIP, AreaEventStatus.Complete);
                //relay.Events.Add(evt);
                //EventLogger.logEvent(evt);

                await relay.mcu.connection?.SendMessageAsync($"relaychanged:{relay.mcu.remoteDeviceId}:{relay.swState}");

                return(relay);
            }
        }
        public void RescheduleRecord(RelayDevice relayDevice, MaintenanceRecord record)
        {
            record.IsRescheduled = true;
            MaintenanceRecord addedRecord = new MaintenanceRecord();
            MaintenanceRecord nextRecord  = relayDevice.MaintenanceRecords.OrderBy(x => x.PlannedMaintenanceDate)
                                            .FirstOrDefault(x => x.PlannedMaintenanceDate > record.PlannedMaintenanceDate);

            if (nextRecord != null && nextRecord.PlannedMaintenanceDate.Year != record.PlannedMaintenanceDate.Year + 1)
            {
                addedRecord.PlannedMaintenanceDate = record.PlannedMaintenanceDate.AddYears(1);
                addedRecord.MaintainedEquipment    = relayDevice;
                addedRecord.PlannedMaintenanceType = record.PlannedMaintenanceType;
                dataBase.MaintenanceRecords.Create(addedRecord);
            }
            else if (nextRecord != null && nextRecord.PlannedMaintenanceType.Name.Contains("В"))
            {
                return;
            }
            else if (record.PlannedMaintenanceType.Name.Contains("В"))
            {
                nextRecord.PlannedMaintenanceType = GetCurrentCycle(relayDevice).MaintenanceYears.First(x => x.MaintenanceType.Name.Contains("В")).MaintenanceType;
                dataBase.MaintenanceRecords.Update(nextRecord);
            }
            else if (record.PlannedMaintenanceType.Name.Contains("К") && !nextRecord.PlannedMaintenanceType.Name.Contains("К"))
            {
                nextRecord.PlannedMaintenanceType = GetCurrentCycle(relayDevice).MaintenanceYears.First(x => x.MaintenanceType.Name.Contains("К")).MaintenanceType;
                dataBase.MaintenanceRecords.Update(nextRecord);
            }
            else
            {
                return;
            }
            dataBase.Save();
        }
Ejemplo n.º 5
0
 private void InitializeRelayDevice(RelayDevice device)
 {
     controller.OpenPin(device.GpioId);
     controller.SetPinMode(device.GpioId, PinMode.Output);
     // Relay needs high
     controller.Write(device.GpioId, PinValue.High);
     // Store in map for quick access
     deviceMap.Add(device.Id, device);
 }
Ejemplo n.º 6
0
        public ActionResult <RelayDevice> getRelay(Enums.ControlledAreas area, string deviceName)
        {
            _logger.LogInformation($"getRelay() Entered. area: {area} device: {deviceName}");

            RelayDevice relay = relayDevices.Where(s => s.area == area && s.deviceName.ToLower() == deviceName.ToLower()).FirstOrDefault();

            if (relay != null)
            {
                return(relay);
            }
            return(NotFound());
        }
Ejemplo n.º 7
0
        public async Task <ActionResult <RelayDevice> > setRelay(Enums.ControlledAreas area, string deviceName, int swState)
        {
            RelayDevice relay = relayDevices.Where(s => s.area == area && s.deviceName.ToLower() == deviceName.ToLower()).FirstOrDefault();

            if (relay == null)
            {
                return(NotFound());
            }
            else
            {
                return(await setRelay(relay.localDeviceId, swState));
            }
        }
Ejemplo n.º 8
0
        public RelayDeviceViewModel(IServiceUnitOfWork serviceUnitOfWork, RelayDevice relayDevice, ActionType actionType)
        {
            this.actionType = actionType;

            this.serviceUnitOfWork = serviceUnitOfWork;
            oldRelayDevice         = relayDevice;

            RelayDevice newRelayDevice = new RelayDevice();

            newRelayDevice.Name              = relayDevice.Name;
            newRelayDevice.Attachment        = relayDevice.Attachment;
            newRelayDevice.InputYear         = relayDevice.InputYear;
            newRelayDevice.MaintenancePeriod = relayDevice.MaintenancePeriod;
            newRelayDevice.DeviceType        = relayDevice.DeviceType;
            newRelayDevice.ElementBase       = relayDevice.ElementBase;
            newRelayDevice.Manufacturer      = relayDevice.Manufacturer;
            newRelayDevice.Act = relayDevice.Act;
            newRelayDevice.NormalMaintenanceCycle  = relayDevice.NormalMaintenanceCycle;
            newRelayDevice.ReducedMaintenanceCycle = relayDevice.ReducedMaintenanceCycle;
            RelayDevice = newRelayDevice;

            if (relayDevice.Name != null)
            {
                InputYear                    = relayDevice.InputYear.ToString();
                MaintenancePeriod            = relayDevice.MaintenancePeriod.ToString();
                NormalMaintenanceCycleModel  = serviceUnitOfWork.MaintenanceCycleModels.Get(relayDevice.NormalMaintenanceCycle);
                ReducedMaintenanceCycleModel = serviceUnitOfWork.MaintenanceCycleModels.Get(relayDevice.ReducedMaintenanceCycle);
            }

            Substations            = serviceUnitOfWork.Substations.GetAll();
            DeviceTypes            = serviceUnitOfWork.DeviceTypes.GetAll();
            ElementBases           = serviceUnitOfWork.ElementBases.GetAll();
            Manufacturers          = serviceUnitOfWork.Manufacturers.GetAll();
            Acts                   = serviceUnitOfWork.Acts.GetAll();
            MaintenanceCycleModels = new ObservableCollection <MaintenanceCycleModel>(serviceUnitOfWork.MaintenanceCycleModels.GetAll().Where(x => x.MaintenanceTypes.
                                                                                                                                              Where(y => {
                if (y != null)
                {
                    return(y.Contains("В") || y.Contains("Н"));
                }
                return(false);
            }).Count() != 0));
        }
        public ObservableCollection <AdditionalWorkModel> GetAll(RelayDevice device)
        {
            ObservableCollection <AdditionalWorkModel> additionalWorkModels = new ObservableCollection <AdditionalWorkModel>();

            foreach (AdditionalWork combineDevice in device.CombineDevices)
            {
                AdditionalWorkModel additionalWorkModel = new AdditionalWorkModel();
                additionalWorkModel.MaintainedEquipmentId = combineDevice.MaintainedEquipmentId;
                additionalWorkModel.Name      = combineDevice.Name;
                additionalWorkModel.InputYear = combineDevice.InputYear;
                MaintenanceRecord record = combineDevice.MaintenanceRecords.Where(x => x.ActualMaintenanceDate != null).Last();
                additionalWorkModel.LastMaintenanceDate = record.ActualMaintenanceDate.Value;
                additionalWorkModel.LastMaintenanceType = record.ActualMaintenanceType;
                record = combineDevice.MaintenanceRecords.Where(x => x.ActualMaintenanceDate == null).First();
                additionalWorkModel.PlannedMaintenanceDate = record.PlannedMaintenanceDate;
                additionalWorkModel.PlannedMaintenanceType = record.PlannedMaintenanceType;
                additionalWorkModels.Add(additionalWorkModel);
            }
            return(additionalWorkModels);
        }
Ejemplo n.º 10
0
        public void Read(IUnitOfWork unitOfWork)
        {
            Excel.Application excel = new Excel.Application();
            string            path  = Directory.GetCurrentDirectory();

            path += "\\data.xlsx";
            excel.Workbooks.Open(path, Password: 1);

            Excel.Worksheet workSheet = excel.ActiveSheet;
            Excel.Range     excelRange;
            int             lol          = 0;
            int             randomNumber = 0;
            Random          rand         = new Random();
            List <string>   liders       = new List <string> {
                "Бушланов", "Васькович", "Солодухин", "Шилько", "Цапкин"
            };
            List <string> shortName = new List <string> {
                "П3", "П1", "П2", "Н", "В"
            };

            MaintainedEquipmentEnum       equipmentEnum  = MaintainedEquipmentEnum.None;
            List <ManagementOrganization> organizations  = new List <ManagementOrganization>();
            List <Team>                 teams            = new List <Team>();
            List <Substation>           substations      = new List <Substation>();
            List <Attachment>           attachments      = new List <Attachment>();
            List <InspectionsFrequency> inspections      = new List <InspectionsFrequency>();
            List <ElementBase>          elementBases     = new List <ElementBase>();
            List <MaintenanceYear>      maintenanceYears = new List <MaintenanceYear>();
            List <MaintenanceCycle>     cycles           = new List <MaintenanceCycle>();
            List <Act> acts = new List <Act>();

            List <MaintenanceType> maintenanceTypes = new List <MaintenanceType>();

            TransformerType typeTranformer = new TransformerType();

            typeTranformer.Name = "Неуказан";
            unitOfWork.TransformerTypes.Create(typeTranformer);
            unitOfWork.Save();

            DistrictElectricalNetwork network = new DistrictElectricalNetwork();

            network.Name = "Неуказан";
            network.Head = "Неуказан";
            unitOfWork.DistricElectricalNetworks.Create(network);
            unitOfWork.Save();

            VoltageClass voltageClass = new VoltageClass();

            voltageClass.Name = "Не указан";
            unitOfWork.VoltageClasses.Create(voltageClass);
            unitOfWork.Save();

            Manufacturer manufacturer = new Manufacturer();

            manufacturer.Name = "Не указан";
            unitOfWork.Manufacturers.Create(manufacturer);
            unitOfWork.Save();

            DeviceType deviceType = new DeviceType();

            deviceType.Name = "Не указан";
            unitOfWork.DeviceTypes.Create(deviceType);
            unitOfWork.Save();

            Act withoutAct = new Act();

            withoutAct.Name         = "Не указан";
            withoutAct.CreationDate = new DateTime(2015, 2, 1);
            unitOfWork.Acts.Create(withoutAct);
            unitOfWork.Save();

            for (int number = 0; number < liders.Count; number++)
            {
                Team newTeam = new Team();
                newTeam.Leader = liders[number];
                newTeam.Name   = shortName[number];
                teams.Add(newTeam);
                unitOfWork.Teams.Create(newTeam);
                unitOfWork.Save();
            }

            bool viewedAllSubstation = false;
            int  startRecord         = 3;
            int  lastRecord          = 400; //1875;

            for (int i = startRecord; i <= lastRecord; i++)
            {
                excelRange = workSheet.Rows[i];

                if (Convert.ToString(excelRange.Cells[1, 6].Value2) == "все устройства")
                {
                    equipmentEnum = MaintainedEquipmentEnum.Substation;
                }
                else if (Convert.ToString(excelRange.Cells[1, 8].Value2) == null && Convert.ToString(excelRange.Cells[1, 10].Value2) != null)
                {
                    equipmentEnum = MaintainedEquipmentEnum.AdditionalDevice;
                }
                else if (Convert.ToString(excelRange.Cells[1, 8].Value2) == null && Convert.ToString(excelRange.Cells[1, 10].Value2) == null)
                {
                    equipmentEnum = MaintainedEquipmentEnum.CombineDevice;
                }
                else if (Convert.ToString(excelRange.Cells[1, 8].Value2) != null && Convert.ToString(excelRange.Cells[1, 10].Value2) != null)
                {
                    equipmentEnum = MaintainedEquipmentEnum.Device;
                }

                if (equipmentEnum != MaintainedEquipmentEnum.Substation && !viewedAllSubstation)
                {
                    if (lastRecord == i)
                    {
                        viewedAllSubstation = true;
                        i = startRecord;
                    }
                    continue;
                }

                if (equipmentEnum == MaintainedEquipmentEnum.Substation && viewedAllSubstation)
                {
                    continue;
                }

                ManagementOrganization organization = new ManagementOrganization();
                organization.Name = Convert.ToString(excelRange.Cells[1, 1].Value2);
                if (!organizations.Exists(x => x.Name == organization.Name))
                {
                    organizations.Add(organization);
                    unitOfWork.ManagementOrganizations.Create(organization);
                    unitOfWork.Save();
                }
                else
                {
                    organization = organizations.Find(x => x.Name == organization.Name);
                }

                Team   team           = new Team();
                string liderShortName = Convert.ToString(excelRange.Cells[1, 2].Value2);
                team = teams.Find(x => x.Name == liderShortName);

                Substation substation = new Substation();
                substation.Name = Convert.ToString(excelRange.Cells[1, 3].Value2);
                substation.Name = substation.Name.TrimEnd();
                if (substations.Exists(x => x.Name == substation.Name))
                {
                    if (!viewedAllSubstation)
                    {
                        continue;
                    }
                    substation = substations.Find(x => x.Name == substation.Name);
                }
                substation.Team = team;
                substation.DistrictElectricalNetwork = network;
                substation.TransformerType           = typeTranformer;

                Attachment attachment = new Attachment();
                attachment.Name = Convert.ToString(excelRange.Cells[1, 5].Value2);
                attachment.ManagementOrganization = organization;
                attachment.VoltageClass           = voltageClass;

                switch (equipmentEnum)
                {
                case MaintainedEquipmentEnum.Substation:
                {
                    InspectionsFrequency period = new InspectionsFrequency();
                    period.Name = Convert.ToString(excelRange.Cells[1, 10].Value2);

                    MaintenanceType type = new MaintenanceType();
                    type.Name = "осмотр";
                    if (!maintenanceTypes.Any(x => x.Name == type.Name))
                    {
                        maintenanceTypes.Add(type);
                        unitOfWork.MaintenanceTypes.Create(type);
                        unitOfWork.Save();
                    }
                    else
                    {
                        type = maintenanceTypes.Find(x => x.Name == type.Name);
                    }

                    MaintenanceRecord        record             = new MaintenanceRecord();
                    List <MaintenanceRecord> maintenanceRecords = new List <MaintenanceRecord>();
                    substation.InputYear = Convert.ToInt32(workSheet.Cells[1, 18].Value2);

                    if (period.Name.StartsWith("1 раз в месяц"))
                    {
                        period.Count = 12;
                        string inspection = excelRange.Cells[1, 10].Value2;
                        if (inspection != null)
                        {
                            for (int column = 18; column < 39; column++)
                            {
                                for (int workingMonth = 1; workingMonth <= 12; workingMonth++)
                                {
                                    record = new MaintenanceRecord();
                                    int year = Convert.ToInt32(workSheet.Cells[1, column].Value2);

                                    record.PlannedMaintenanceDate = new DateTime(year, workingMonth, 1);
                                    record.PlannedMaintenanceType = type;

                                    if (year < DateTime.Now.Year || (year == DateTime.Now.Year && workingMonth <= DateTime.Now.Month))
                                    {
                                        record.ActualMaintenanceDate = new DateTime(year, workingMonth, 1);
                                        record.ActualMaintenanceType = type;
                                    }
                                    maintenanceRecords.Add(record);
                                }
                            }
                        }
                    }
                    else if (period.Name.StartsWith("1 раз в 6"))
                    {
                        period.Count = 2;
                        for (int column = 18; column < 39; column++)
                        {
                            string inspection = excelRange.Cells[1, 10].Value2;
                            if (inspection != null)
                            {
                                for (int workingMonth = 1; workingMonth <= 2; workingMonth++)
                                {
                                    record = new MaintenanceRecord();
                                    int year = Convert.ToInt32(workSheet.Cells[1, column].Value2);

                                    record.PlannedMaintenanceDate = new DateTime(year, 4 * workingMonth, 1);
                                    record.PlannedMaintenanceType = type;

                                    if (year < DateTime.Now.Year)
                                    {
                                        record.ActualMaintenanceDate = new DateTime(year, 4 * workingMonth, 1);
                                        record.ActualMaintenanceType = type;
                                    }
                                    maintenanceRecords.Add(record);
                                }
                            }
                        }
                    }
                    else if (period.Name.StartsWith("1 раз в 12"))
                    {
                        period.Count = 1;
                        for (int column = 18; column < 39; column++)
                        {
                            string inspection = excelRange.Cells[1, 10].Value2;
                            if (inspection != null)
                            {
                                record = new MaintenanceRecord();

                                int year = Convert.ToInt32(workSheet.Cells[1, column].Value2);

                                record.PlannedMaintenanceDate = new DateTime(year, 5, 1);
                                record.PlannedMaintenanceType = type;

                                if (year < DateTime.Now.Year)
                                {
                                    record.ActualMaintenanceDate = new DateTime(year, 5, 1);
                                    record.ActualMaintenanceType = type;
                                }
                                maintenanceRecords.Add(record);
                            }
                        }
                    }

                    if (!inspections.Exists(x => x.Name == period.Name))
                    {
                        inspections.Add(period);
                        unitOfWork.InspectionsFrequencies.Create(period);
                        unitOfWork.Save();
                    }
                    else
                    {
                        period = inspections.Find(x => x.Name == period.Name);
                    }

                    if (!substations.Exists(x => x.Name == substation.Name))
                    {
                        substation.InspectionsFrequency = period;
                        substations.Add(substation);
                        unitOfWork.Substations.Create(substation);
                        unitOfWork.Save();
                    }
                    else
                    {
                        substation = substations.Find(x => x.Name == substation.Name);
                    }

                    foreach (MaintenanceRecord rec in maintenanceRecords)
                    {
                        rec.MaintainedEquipment = substation;
                        unitOfWork.MaintenanceRecords.Create(rec);
                        unitOfWork.Save();
                    }
                    break;
                }

                case MaintainedEquipmentEnum.Device:
                {
                    RelayDevice device = new RelayDevice();
                    device.Name = Convert.ToString(excelRange.Cells[1, 6].Value2);
                    device.MaintenanceRecords = new List <MaintenanceRecord>();

                    ElementBase elementBase = new ElementBase();
                    elementBase.Name = Convert.ToString(excelRange.Cells[1, 8].Value2);
                    if (!elementBases.Exists(x => x.Name == elementBase.Name))
                    {
                        elementBases.Add(elementBase);
                        unitOfWork.ElementBases.Create(elementBase);
                        unitOfWork.Save();
                    }
                    else
                    {
                        elementBase = elementBases.Find(x => x.Name == elementBase.Name);
                    }

                    device.ElementBase = elementBase;

                    device.Manufacturer = manufacturer;

                    device.MaintenancePeriod = Convert.ToInt32(excelRange.Cells[1, 9].Value2);
                    device.ExpiryYear        = Convert.ToInt32(excelRange.Cells[1, 12].Value2);
                    device.InputYear         = Convert.ToInt32(excelRange.Cells[1, 13].Value2);

                    string lastRecovery = Convert.ToString(excelRange.Cells[1, 14].Value2);
                    if (lastRecovery != null)
                    {
                        string[] array = lastRecovery.Split('-', '/');
                        if (array.Count() < 3)
                        {
                            array = new string[] { array[0], array[1], "16" };
                        }

                        try
                        {
                            device.LastRecovery = new DateTime(2000 + Convert.ToInt32(array[2]), Convert.ToInt32(array[1]), 1);
                        }
                        catch (ArgumentOutOfRangeException)
                        {
                            device.LastRecovery = new DateTime(2000 + Convert.ToInt32(array[1]), Convert.ToInt32(array[2]), 1);
                        }
                        catch (FormatException)
                        {
                            try
                            {
                                device.LastRecovery = new DateTime(2000 + Convert.ToInt32(array[2]), Convert.ToInt32(array[3]), 1);
                            }
                            catch (Exception)
                            {
                                device.LastRecovery = new DateTime(2000 + Convert.ToInt32(array[3]), Convert.ToInt32(array[2]), 1);
                            }
                        }
                    }


                    MaintenanceCycle cycle = new MaintenanceCycle();
                    randomNumber++;
                    cycle.Name             = randomNumber.ToString();
                    cycle.MaintenanceYears = new List <MaintenanceYear>();
                    cycle.ShowName         = Convert.ToString(excelRange.Cells[1, 10].Value2);


                    device.NormalMaintenanceCycle  = cycle;
                    device.ReducedMaintenanceCycle = cycle;


                    bool recoveryFound = false;
                    int  year          = 8;

                    List <MaintenanceRecord> maintenanceRecords = new List <MaintenanceRecord>();
                    MaintenanceRecord        record             = new MaintenanceRecord();

                    for (int column = 38; column >= 18; column--)
                    {
                        MaintenanceType maintenanceType = new MaintenanceType();
                        maintenanceType.Name = Convert.ToString(excelRange.Cells[1, column].Value2);
                        if (maintenanceType.Name == " ")
                        {
                            maintenanceType.Name = null;
                        }
                        if (maintenanceType.Name != null)
                        {
                            maintenanceType.Name = maintenanceType.Name.Trim();
                        }
                        if (maintenanceType.Name != null && !maintenanceTypes.Exists(x => x.Name.Equals(maintenanceType.Name, StringComparison.InvariantCultureIgnoreCase)))
                        {
                            maintenanceTypes.Add(maintenanceType);
                            unitOfWork.MaintenanceTypes.Create(maintenanceType);
                            unitOfWork.Save();
                        }
                        else if (maintenanceTypes.Exists(x => x.Name.Equals(maintenanceType.Name, StringComparison.InvariantCultureIgnoreCase)))
                        {
                            maintenanceType = maintenanceTypes.First(x => x.Name.Equals(maintenanceType.Name, StringComparison.InvariantCultureIgnoreCase));
                        }

                        if (maintenanceType.Name == "В" && year == 8)
                        {
                            recoveryFound = true;
                        }

                        if (maintenanceType.Name != null)
                        {
                            int workYear = Convert.ToInt32(workSheet.Cells[1, column].Value2);
                            record = new MaintenanceRecord();
                            record.PlannedMaintenanceDate = new DateTime(workYear, 5, 1);
                            record.PlannedMaintenanceType = maintenanceType;

                            if (workYear < DateTime.Now.Year)
                            {
                                record.ActualMaintenanceDate = new DateTime(workYear, 5, 1);
                                record.ActualMaintenanceType = maintenanceType;
                                record.IsPlanned             = true;
                            }
                            maintenanceRecords.Add(record);
                        }

                        if (recoveryFound && year >= 0 && maintenanceType.Name != null)
                        {
                            MaintenanceYear maintenanceYear = new MaintenanceYear();

                            maintenanceYear.MaintenanceType  = maintenanceType;
                            maintenanceYear.Year             = year;
                            maintenanceYear.MaintenanceCycle = cycle;
                            cycle.MaintenanceYears.Add(maintenanceYear);
                            if (year == 0)
                            {
                                recoveryFound = false;
                            }
                        }

                        if (recoveryFound)
                        {
                            year--;
                        }
                    }

                    List <MaintenanceCycle> searchCycle = cycles.FindAll(x => x.MaintenanceYears.Count == cycle.MaintenanceYears.Count);
                    bool exist = false;

                    foreach (MaintenanceCycle maintananceCycle in searchCycle)
                    {
                        for (int j = 0; j < maintananceCycle.MaintenanceYears.Count; j++)
                        {
                            if (maintananceCycle.MaintenanceYears[j].MaintenanceType == cycle.MaintenanceYears[j].MaintenanceType &&
                                maintananceCycle.MaintenanceYears[j].Year == cycle.MaintenanceYears[j].Year)
                            {
                                exist = true;
                            }
                            else
                            {
                                exist = false;
                                break;
                            }
                        }
                        if (exist)
                        {
                            device.NormalMaintenanceCycle  = maintananceCycle;
                            device.ReducedMaintenanceCycle = maintananceCycle;
                            break;
                        }
                    }

                    if (!exist)
                    {
                        cycles.Add(cycle);
                        List <MaintenanceYear> years = new List <MaintenanceYear>();
                        years.AddRange(cycle.MaintenanceYears);
                        cycle.MaintenanceYears.Clear();
                        unitOfWork.MaintenanceCycles.Create(cycle);
                        unitOfWork.Save();
                        foreach (MaintenanceYear obj in years)
                        {
                            unitOfWork.MaintenanceYears.Create(obj);
                            unitOfWork.Save();
                        }
                    }

                    attachment.Name = attachment.Name.Trim();
                    if (!attachments.Exists(x => x.Name == attachment.Name))
                    {
                        attachment.Substation = substations.FirstOrDefault(x => x.Name == substation.Name);
                        attachments.Add(attachment);
                        unitOfWork.Attachments.Create(attachment);
                        unitOfWork.Save();
                        lol++;
                    }
                    else
                    {
                        attachment = attachments.First(x => x.Name == attachment.Name);
                    }

                    device.Act = withoutAct;

                    string act = Convert.ToString(excelRange.Cells[1, 11].Value2);

                    if (act != null && !act.StartsWith("вкл"))
                    {
                        Act actOfService = new Act();
                        actOfService.Name = act;
                        if (!acts.Exists(x => x.Name == actOfService.Name))
                        {
                            acts.Add(actOfService);
                            string[] strings = actOfService.Name.Split(' ');
                            DateTime date;
                            DateTime.TryParse(strings[2], out date);
                            actOfService.CreationDate = date;
                            unitOfWork.Acts.Create(actOfService);
                            unitOfWork.Save();
                        }
                        else
                        {
                            actOfService = acts.Find(x => x.Name == actOfService.Name);
                        }
                        device.Act = actOfService;
                    }

                    device.DeviceType = deviceType;



                    device.Attachment = attachment;
                    unitOfWork.Devices.Create(device);
                    unitOfWork.Save();
                    maintenanceRecords.Reverse();
                    foreach (MaintenanceRecord rec in maintenanceRecords)
                    {
                        rec.MaintainedEquipment = device;
                        unitOfWork.MaintenanceRecords.Create(rec);
                        unitOfWork.Save();
                    }

                    break;
                }

                case MaintainedEquipmentEnum.CombineDevice:
                {
                    AdditionalWork additionalWork = new AdditionalWork();
                    additionalWork.Name = Convert.ToString(excelRange.Cells[1, 6].Value2);
                    additionalWork.MaintenanceRecords = new List <MaintenanceRecord>();


                    if (additionalWork.Name.StartsWith("прохождение"))
                    {
                        int k = 1;
                    }
                    MaintenanceCycle cycle = new MaintenanceCycle();
                    cycle.MaintenanceYears = new List <MaintenanceYear>();
                    randomNumber++;
                    cycle.Name     = randomNumber.ToString();
                    cycle.ShowName = Convert.ToString(excelRange.Cells[1, 10].Value2);
                    if (cycle.ShowName == null)
                    {
                        cycle.ShowName = "Не назначено имя";
                    }
                    additionalWork.NormalMaintenanceCycle  = cycle;
                    additionalWork.ReducedMaintenanceCycle = cycle;
                    bool recoveryFound = false;
                    int  year          = 0;
                    List <MaintenanceRecord> maintenanceRecords = new List <MaintenanceRecord>();
                    MaintenanceRecord        record             = new MaintenanceRecord();

                    for (int column = 18; column <= 38; column++)
                    {
                        MaintenanceType maintenanceType = new MaintenanceType();
                        maintenanceType.Name = Convert.ToString(excelRange.Cells[1, column].Value2);
                        if (maintenanceType.Name == " ")
                        {
                            maintenanceType.Name = null;
                        }
                        if (maintenanceType.Name != null && !maintenanceTypes.Exists(x => x.Name.Equals(maintenanceType.Name, StringComparison.InvariantCultureIgnoreCase)))
                        {
                            maintenanceTypes.Add(maintenanceType);
                            unitOfWork.MaintenanceTypes.Create(maintenanceType);
                            unitOfWork.Save();
                        }
                        else if (maintenanceTypes.Exists(x => x.Name.Equals(maintenanceType.Name, StringComparison.InvariantCultureIgnoreCase)))
                        {
                            maintenanceType = maintenanceTypes.First(x => x.Name.Equals(maintenanceType.Name, StringComparison.InvariantCultureIgnoreCase));
                        }

                        if (maintenanceType.Name != null && year == 0)
                        {
                            recoveryFound = true;
                        }

                        if (maintenanceType.Name != null)
                        {
                            int workYear = Convert.ToInt32(workSheet.Cells[1, column].Value2);
                            record = new MaintenanceRecord();
                            record.PlannedMaintenanceDate = new DateTime(workYear, 5, 1);
                            record.PlannedMaintenanceType = maintenanceType;

                            if (workYear < DateTime.Now.Year)
                            {
                                record.ActualMaintenanceDate = new DateTime(workYear, 5, 1);
                                record.ActualMaintenanceType = maintenanceType;
                                record.IsPlanned             = true;
                            }
                            maintenanceRecords.Add(record);
                            if (maintenanceRecords.Count == 1)
                            {
                                additionalWork.InputYear = Convert.ToInt32(workSheet.Cells[1, column].Value2);
                            }
                        }

                        if (recoveryFound && year <= 8 && maintenanceType.Name != null)
                        {
                            MaintenanceYear maintenanceYear = new MaintenanceYear();
                            maintenanceYear.MaintenanceType  = maintenanceType;
                            maintenanceYear.Year             = year;
                            maintenanceYear.MaintenanceCycle = cycle;
                            cycle.MaintenanceYears.Add(maintenanceYear);
                            if (year == 8)
                            {
                                recoveryFound = false;
                            }
                        }

                        if (recoveryFound)
                        {
                            year++;
                        }
                    }

                    List <MaintenanceCycle> searchCycle = cycles.FindAll(x => x.MaintenanceYears.Count == cycle.MaintenanceYears.Count);
                    bool exist = false;

                    foreach (MaintenanceCycle maintananceCycle in searchCycle)
                    {
                        for (int j = 0; j < maintananceCycle.MaintenanceYears.Count; j++)
                        {
                            if (maintananceCycle.MaintenanceYears[j].MaintenanceType == cycle.MaintenanceYears[j].MaintenanceType &&
                                maintananceCycle.MaintenanceYears[j].Year == cycle.MaintenanceYears[j].Year)
                            {
                                exist = true;
                            }
                            else
                            {
                                exist = false;
                                break;
                            }
                        }
                        if (exist)
                        {
                            additionalWork.NormalMaintenanceCycle  = maintananceCycle;
                            additionalWork.ReducedMaintenanceCycle = maintananceCycle;
                            break;
                        }
                    }

                    if (!exist)
                    {
                        cycles.Add(cycle);
                        List <MaintenanceYear> years = new List <MaintenanceYear>();
                        cycle.MaintenanceYears.Reverse();
                        years.AddRange(cycle.MaintenanceYears);
                        cycle.MaintenanceYears.Clear();
                        unitOfWork.MaintenanceCycles.Create(cycle);
                        unitOfWork.Save();
                        foreach (MaintenanceYear obj in years)
                        {
                            unitOfWork.MaintenanceYears.Create(obj);
                            unitOfWork.Save();
                        }
                    }

                    additionalWork.Substation = substations.FirstOrDefault(x => x.Name == substation.Name);
                    unitOfWork.AdditionalWorks.Create(additionalWork);
                    unitOfWork.Save();

                    foreach (MaintenanceRecord rec in maintenanceRecords)
                    {
                        rec.MaintainedEquipment = additionalWork;
                        unitOfWork.MaintenanceRecords.Create(rec);
                        unitOfWork.Save();
                    }
                    break;
                }

                case MaintainedEquipmentEnum.AdditionalDevice:
                {
                    AdditionalDevice additionalDevice = new AdditionalDevice();
                    additionalDevice.Name = Convert.ToString(excelRange.Cells[1, 6].Value2);
                    additionalDevice.MaintenanceRecords = new List <MaintenanceRecord>();
                    additionalDevice.MaintenancePeriod  = 25;

                    string lastRecovery = Convert.ToString(excelRange.Cells[1, 14].Value2);
                    if (lastRecovery != null)
                    {
                        string[] array = lastRecovery.Split('-', '/');
                        if (array.Count() < 3)
                        {
                            array = new string[] { array[0], array[1], "16" };
                        }
                        try
                        {
                            additionalDevice.LastRecovery = new DateTime(2000 + Convert.ToInt32(array[2]), Convert.ToInt32(array[1]), 1);
                        }
                        catch (ArgumentOutOfRangeException)
                        {
                            additionalDevice.LastRecovery = new DateTime(2000 + Convert.ToInt32(array[1]), Convert.ToInt32(array[2]), 1);
                        }
                        catch (FormatException)
                        {
                            try
                            {
                                additionalDevice.LastRecovery = new DateTime(2000 + Convert.ToInt32(array[2]), Convert.ToInt32(array[3]), 1);
                            }
                            catch (Exception)
                            {
                                additionalDevice.LastRecovery = new DateTime(2000 + Convert.ToInt32(array[3]), Convert.ToInt32(array[2]), 1);
                            }
                        }
                    }
                    MaintenanceCycle cycle = new MaintenanceCycle();
                    cycle.MaintenanceYears = new List <MaintenanceYear>();
                    randomNumber++;
                    cycle.Name     = randomNumber.ToString();
                    cycle.ShowName = Convert.ToString(excelRange.Cells[1, 10].Value2);
                    additionalDevice.NormalMaintenanceCycle  = cycle;
                    additionalDevice.ReducedMaintenanceCycle = cycle;
                    bool recoveryFound = false;
                    int  year          = 0;
                    List <MaintenanceRecord> maintenanceRecords = new List <MaintenanceRecord>();
                    MaintenanceRecord        record             = new MaintenanceRecord();

                    for (int column = 18; column <= 38; column++)
                    {
                        MaintenanceType maintenanceType = new MaintenanceType();
                        maintenanceType.Name = Convert.ToString(excelRange.Cells[1, column].Value2);
                        if (maintenanceType.Name == " ")
                        {
                            maintenanceType.Name = null;
                        }
                        if (maintenanceType.Name != null && !maintenanceTypes.Exists(x => x.Name.Equals(maintenanceType.Name, StringComparison.InvariantCultureIgnoreCase)))
                        {
                            maintenanceTypes.Add(maintenanceType);
                            unitOfWork.MaintenanceTypes.Create(maintenanceType);
                            unitOfWork.Save();
                        }
                        else if (maintenanceTypes.Exists(x => x.Name.Equals(maintenanceType.Name, StringComparison.InvariantCultureIgnoreCase)))
                        {
                            maintenanceType = maintenanceTypes.First(x => x.Name.Equals(maintenanceType.Name, StringComparison.InvariantCultureIgnoreCase));
                        }

                        if (maintenanceType.Name != "В" && year == 0)
                        {
                            recoveryFound = true;
                        }

                        if (maintenanceType.Name != null)
                        {
                            int workYear = Convert.ToInt32(workSheet.Cells[1, column].Value2);
                            record = new MaintenanceRecord();
                            record.PlannedMaintenanceDate = new DateTime(workYear, 5, 1);
                            record.PlannedMaintenanceType = maintenanceType;

                            if (workYear < DateTime.Now.Year)
                            {
                                record.ActualMaintenanceDate = new DateTime(workYear, 5, 1);
                                record.ActualMaintenanceType = maintenanceType;
                                record.IsPlanned             = true;
                            }
                            maintenanceRecords.Add(record);
                        }

                        if (recoveryFound && year >= 0 && maintenanceType.Name != null)
                        {
                            MaintenanceYear maintenanceYear = new MaintenanceYear();

                            maintenanceYear.MaintenanceType  = maintenanceType;
                            maintenanceYear.Year             = year;
                            maintenanceYear.MaintenanceCycle = cycle;
                            cycle.MaintenanceYears.Add(maintenanceYear);
                            if (year == 8)
                            {
                                recoveryFound = false;
                            }
                        }

                        if (recoveryFound)
                        {
                            year++;
                        }
                    }

                    additionalDevice.Act = withoutAct;

                    string act = Convert.ToString(excelRange.Cells[1, 11].Value2);

                    if (act != null)
                    {
                        Act actOfService = new Act();
                        actOfService.Name = act;
                        if (!acts.Any(x => x.Name == actOfService.Name))
                        {
                            string[] strings = actOfService.Name.Split(' ');
                            DateTime date;
                            DateTime.TryParse(strings[2], out date);
                            actOfService.CreationDate = date;
                            acts.Add(actOfService);
                            unitOfWork.Acts.Create(actOfService);
                            unitOfWork.Save();
                        }
                        else
                        {
                            actOfService = acts.Find(x => x.Name == actOfService.Name);
                        }
                        additionalDevice.Act = actOfService;
                    }

                    List <MaintenanceCycle> searchCycle = cycles.FindAll(x => x.MaintenanceYears.Count == cycle.MaintenanceYears.Count);
                    bool exist = false;

                    foreach (MaintenanceCycle maintananceCycle in searchCycle)
                    {
                        for (int j = 0; j < maintananceCycle.MaintenanceYears.Count; j++)
                        {
                            if (maintananceCycle.MaintenanceYears[j].MaintenanceType == cycle.MaintenanceYears[j].MaintenanceType &&
                                maintananceCycle.MaintenanceYears[j].Year == cycle.MaintenanceYears[j].Year)
                            {
                                exist = true;
                            }
                            else
                            {
                                exist = false;
                                break;
                            }
                        }
                        if (exist)
                        {
                            additionalDevice.NormalMaintenanceCycle  = maintananceCycle;
                            additionalDevice.ReducedMaintenanceCycle = maintananceCycle;
                            break;
                        }
                    }

                    if (!exist)
                    {
                        cycles.Add(cycle);
                        List <MaintenanceYear> years = new List <MaintenanceYear>();
                        cycle.MaintenanceYears.Reverse();
                        years.AddRange(cycle.MaintenanceYears);
                        cycle.MaintenanceYears.Clear();
                        unitOfWork.MaintenanceCycles.Create(cycle);
                        unitOfWork.Save();
                        foreach (MaintenanceYear obj in years)
                        {
                            unitOfWork.MaintenanceYears.Create(obj);
                            unitOfWork.Save();
                        }
                    }

                    if (!attachments.Exists(x => x.Name == attachment.Name))
                    {
                        attachment.Substation = substations.FirstOrDefault(x => x.Name == substation.Name);
                        attachments.Add(attachment);
                        unitOfWork.Attachments.Create(attachment);
                        unitOfWork.Save();
                    }
                    else
                    {
                        attachment = attachments.First(x => x.Name == attachment.Name);
                    }
                    additionalDevice.Attachment = attachment;
                    unitOfWork.AdditionalDevices.Create(additionalDevice);
                    unitOfWork.Save();
                    foreach (MaintenanceRecord rec in maintenanceRecords)
                    {
                        rec.MaintainedEquipment = additionalDevice;
                        unitOfWork.MaintenanceRecords.Create(rec);
                        unitOfWork.Save();
                    }
                    break;
                }

                default:
                {
                    break;
                }
                }
                //unitOfWork.Save();
            }
            excel.Workbooks.Close();
        }
Ejemplo n.º 11
0
        private async void AddScheduleRecordModelAsync(MaintainedEquipment maintainedEquipment, int year, IServiceUnitOfWork serviceUnitOfWork)
        {
            await Task.Run(() =>
            {
                ScheduleRecordModel scheduleRecord = new ScheduleRecordModel();
                scheduleRecord.MaintenanceTypes    = new List <string>();
                if (maintainedEquipment is Substation)
                {
                    Substation substation = dataBase.Substations
                                            .ReadAsync(maintainedEquipment.MaintainedEquipmentId).Result;

                    scheduleRecord.Substation = substation.Name;
                    scheduleRecord.Attachment = s_allAttachments;
                    scheduleRecord.Name       = s_allEquipments;
                    scheduleRecord.MaintenanceTypes.Add("осмотр");
                }
                else if (maintainedEquipment is AdditionalWork)
                {
                    AdditionalWork work = dataBase.AdditionalWorks
                                          .ReadAsync(maintainedEquipment.MaintainedEquipmentId).Result;

                    scheduleRecord.Substation             = work.Substation.Name;
                    scheduleRecord.Attachment             = null;
                    scheduleRecord.Name                   = work.Name;
                    scheduleRecord.MaintenanceTypes       = GetMaintenanceTypes(work, serviceUnitOfWork);
                    scheduleRecord.Team                   = work.Substation.Team.Name;
                    scheduleRecord.ManagementOrganization = "ОДС";
                }
                else if (maintainedEquipment is AdditionalDevice)
                {
                    AdditionalDevice additionalDevice = dataBase.AdditionalDevices
                                                        .ReadAsync(maintainedEquipment.MaintainedEquipmentId).Result;

                    scheduleRecord.Substation             = additionalDevice.Attachment.Substation.Name;
                    scheduleRecord.Attachment             = additionalDevice.Attachment.Name;
                    scheduleRecord.Name                   = additionalDevice.Name;
                    scheduleRecord.MaintenanceTypes       = GetMaintenanceTypes(additionalDevice, serviceUnitOfWork);
                    scheduleRecord.Team                   = additionalDevice.Attachment.Substation.Team.Name;
                    scheduleRecord.ManagementOrganization = additionalDevice.Attachment.ManagementOrganization.Name;
                }
                else if (maintainedEquipment is RelayDevice)
                {
                    RelayDevice relayDevice = dataBase.RelayDevices
                                              .ReadAsync(maintainedEquipment.MaintainedEquipmentId).Result;

                    scheduleRecord.Substation             = relayDevice.Attachment.Substation.Name;
                    scheduleRecord.Attachment             = relayDevice.Attachment.Name;
                    scheduleRecord.Name                   = relayDevice.Name;
                    scheduleRecord.MaintenanceTypes       = GetMaintenanceTypes(relayDevice, serviceUnitOfWork);
                    scheduleRecord.ElementBase            = relayDevice.ElementBase.Name;
                    scheduleRecord.Team                   = relayDevice.Attachment.Substation.Team.Name;
                    scheduleRecord.ManagementOrganization = relayDevice.Attachment.ManagementOrganization.Name;
                }
                MaintenanceRecord lastMaintenanceRecord = maintainedEquipment.MaintenanceRecords
                                                          .LastOrDefault(x => x.ActualMaintenanceDate != null && x.ActualMaintenanceDate.Value.Year != year);

                if (lastMaintenanceRecord != null)
                {
                    scheduleRecord.LastMaintenanceDate = lastMaintenanceRecord.PlannedMaintenanceDate;
                    scheduleRecord.LastMaintenanceType = lastMaintenanceRecord.PlannedMaintenanceType;
                }

                MaintenanceRecord plannedMaitenanceRecored = maintainedEquipment.MaintenanceRecords
                                                             .LastOrDefault(x => x.PlannedMaintenanceDate.Year == year);

                scheduleRecord.PlannedMaintenanceDate = plannedMaitenanceRecored.PlannedMaintenanceDate;
                scheduleRecord.PlannedMaintenanceType = plannedMaitenanceRecored.PlannedMaintenanceType;
                if (plannedMaitenanceRecored.IsPlanned == true)
                {
                    scheduleRecord.PlannedMonth = DateTimeFormatInfo.CurrentInfo.GetMonthName(plannedMaitenanceRecored.PlannedMaintenanceDate.Month);
                    scheduleRecord.PlannedDay   = plannedMaitenanceRecored.PlannedMaintenanceDate.Day;
                }

                scheduleRecord.ActualMaintenanceDate = plannedMaitenanceRecored.ActualMaintenanceDate;
                scheduleRecord.ActualMaintenanceType = plannedMaitenanceRecored.ActualMaintenanceType;
                if (plannedMaitenanceRecored.ActualMaintenanceDate != null && plannedMaitenanceRecored.IsPlanned == true)
                {
                    scheduleRecord.ActualMonth = DateTimeFormatInfo.CurrentInfo.GetMonthName(plannedMaitenanceRecored.ActualMaintenanceDate.Value.Month);
                    scheduleRecord.ActualDay   = plannedMaitenanceRecored.ActualMaintenanceDate.Value.Day;
                }

                scheduleRecord.MaintainedEquipmentId = plannedMaitenanceRecored.MaintainedEquipmentId;
                scheduleRecord.MaintenanceRecordId   = plannedMaitenanceRecored.MaintenanceRecordId;

                scheduleRecord.IsPlanned = plannedMaitenanceRecored.IsPlanned;

                lock (lockObject)
                {
                    m_scheduleRecordModel.Add(scheduleRecord);
                }

                m_semaphore.Release();
            });
        }
Ejemplo n.º 12
0
        private void AddScheduleRecordModel(MaintainedEquipment maintainedEquipment, int year)
        {
            ScheduleRecordModel scheduleRecord = new ScheduleRecordModel();

            if (maintainedEquipment is Substation)
            {
                Substation substation = dataBase.Substations.Read(maintainedEquipment.MaintainedEquipmentId);
                scheduleRecord.Substation             = substation.Name;
                scheduleRecord.Attachment             = s_allAttachments;
                scheduleRecord.Name                   = s_allEquipments;
                scheduleRecord.Team                   = substation.Team.Name;
                scheduleRecord.ManagementOrganization = "ОДС";
                Substation s = new Substation();
            }
            else if (maintainedEquipment is AdditionalWork)
            {
                AdditionalWork work = dataBase.AdditionalWorks.Read(maintainedEquipment.MaintainedEquipmentId);
                scheduleRecord.Substation             = work.Substation.Name;
                scheduleRecord.Attachment             = string.Empty;
                scheduleRecord.Name                   = work.Name;
                scheduleRecord.Team                   = work.Substation.Team.Name;
                scheduleRecord.ManagementOrganization = "ОДС";
            }
            else if (maintainedEquipment is AdditionalDevice)
            {
                AdditionalDevice additionalDevice = dataBase.AdditionalDevices.Read(maintainedEquipment.MaintainedEquipmentId);;
                scheduleRecord.Substation             = additionalDevice.Attachment.Substation.Name;
                scheduleRecord.Attachment             = additionalDevice.Attachment.Name;
                scheduleRecord.Name                   = additionalDevice.Name;
                scheduleRecord.Team                   = additionalDevice.Attachment.Substation.Team.Name;
                scheduleRecord.ManagementOrganization = additionalDevice.Attachment.ManagementOrganization.Name;
            }
            else if (maintainedEquipment is RelayDevice)
            {
                RelayDevice relayDevice = dataBase.RelayDevices.Read(maintainedEquipment.MaintainedEquipmentId);

                scheduleRecord.Substation             = relayDevice.Attachment.Substation.Name;
                scheduleRecord.Attachment             = relayDevice.Attachment.Name;
                scheduleRecord.Name                   = relayDevice.Name;
                scheduleRecord.ElementBase            = relayDevice.ElementBase.Name;
                scheduleRecord.Team                   = relayDevice.Attachment.Substation.Team.Name;
                scheduleRecord.ManagementOrganization = relayDevice.Attachment.ManagementOrganization.Name;
            }
            MaintenanceRecord lastMaintenanceRecord = maintainedEquipment.MaintenanceRecords
                                                      .LastOrDefault(x => x.ActualMaintenanceDate != null);

            scheduleRecord.LastMaintenanceDate = lastMaintenanceRecord.PlannedMaintenanceDate;
            scheduleRecord.LastMaintenanceType = lastMaintenanceRecord.PlannedMaintenanceType;

            MaintenanceRecord plannedMaitenanceRecored = maintainedEquipment.MaintenanceRecords
                                                         .LastOrDefault(x => x.PlannedMaintenanceDate.Year == year);

            scheduleRecord.PlannedMaintenanceDate = plannedMaitenanceRecored.PlannedMaintenanceDate;
            scheduleRecord.PlannedMaintenanceType = plannedMaitenanceRecored.PlannedMaintenanceType;

            scheduleRecord.ActualMaintenanceDate = plannedMaitenanceRecored.ActualMaintenanceDate;
            scheduleRecord.ActualMaintenanceType = plannedMaitenanceRecored.ActualMaintenanceType;

            scheduleRecord.IsPlanned = plannedMaitenanceRecored.IsPlanned;

            m_scheduleRecordModel.Add(scheduleRecord);
        }
 public RelayController(RelayDevice relayDevice)
 {
     _relayDevice = relayDevice;
 }
 public void Update(RelayDevice t)
 {
     UpdateRecords(t);
     dataBase.RelayDevices.Update(t);
     dataBase.Save();
 }
 public void Delete(RelayDevice t)
 {
     dataBase.Devices.Delete(t);
     dataBase.Save();
 }
 public void Create(RelayDevice t)
 {
     CreateRecords(t);
     dataBase.RelayDevices.Create(t);
     dataBase.Save();
 }