private void LoadCheckItems() { CheckItems.Clear(); CheckItemCount = 0; IFeatureWorkspace ws = Util.ServerWorkspace as IFeatureWorkspace; IDataset ds = ws as IDataset; List <String> fcNames = new List <string>(); GetAllFeatureClassNames(ds, ref fcNames); foreach (string fcname in fcNames) { List <int> ids = new List <int>(); IFeatureClass fc = ws.OpenFeatureClass(fcname); IQueryFilter filter = new QueryFilterClass(); filter.WhereClause = "[SyncStatus]='A' OR [SyncStatus]='U'"; IFeatureCursor cur = fc.Search(filter, false); IFeature fea = cur.NextFeature(); while (fea != null) { ids.Add(fea.OID); fea = cur.NextFeature(); } if (ids.Count > 0) { CheckItems.Add(fcname, ids); CheckItemCount += ids.Count; } } }
private void InitTowerData() { CheckItems.Clear(); CheckItemModel mdl = new CheckItemModel() { ItemName = "进港", IsChecked = false }; CheckItemModel mdl2 = new CheckItemModel() { ItemName = "离港", IsChecked = false }; CheckItemModel mdl3 = new CheckItemModel() { ItemName = "训练", IsChecked = false }; CheckItemModel mdl4 = new CheckItemModel() { ItemName = "飞跃", IsChecked = false }; CheckItems.Add(mdl); CheckItems.Add(mdl2); CheckItems.Add(mdl3); CheckItems.Add(mdl4); }
private void InitPositionData() { CheckItems.Clear(); CheckItemModel mdl = new CheckItemModel() { ItemName = "P01", IsChecked = false }; CheckItemModel mdl2 = new CheckItemModel() { ItemName = "P02", IsChecked = false }; CheckItemModel mdl3 = new CheckItemModel() { ItemName = "P03", IsChecked = false }; CheckItemModel mdl4 = new CheckItemModel() { ItemName = "P04", IsChecked = false }; CheckItems.Add(mdl); CheckItems.Add(mdl2); CheckItems.Add(mdl3); CheckItems.Add(mdl4); }
//public GameObject screenText; void Start() { //a little manual effort but saves a lot of computations check = GameObject.FindGameObjectWithTag("Basket").transform.GetChild(5).GetComponent <CheckItems>(); results = new List <bool>(); }
public void SendMessage() { List <AccountWithOwner> accounts; if (SendToAll == true) { AccountRequest request = GetAccountRequest(); accounts = AccountService.QueryAccountWithOwner(request).ToList(); } else { int[] ids = CheckItems.GetCheckedIds(); accounts = AccountService.QueryAccountWithOwner(new AccountRequest { Ids = ids }).ToList(); } foreach (AccountWithOwner account in accounts) { string msg = MessageFormator.Format(MessageTemplate, account); msg = MessageFormator.Format(msg, HostSite); msg = MessageFormator.Format(msg, new AccountUser { DisplayName = account.OwnerDisplayName, Gender = Genders.Male, Mobile = account.OwnerMobileNumber }); SmsHelper.Send(account.OwnerMobileNumber, msg); } AddMessage("发送短信成功!共发送给 {0} 会员", accounts.Count); }
/// <summary> /// This method update the comment for a specified check box /// </summary> /// <param name="id">check item id</param> /// <param name="comment">updated comment</param> public void UpdateCheckItemComment(int id, CommentViewModel comment) { var targetCheckItem = CheckItems.Where(c => c.Id == id).FirstOrDefault(); if (targetCheckItem != null) { targetCheckItem.Comment = comment; } }
public override void AfterLoad(string loadInfo) { if (loadInfo.Contains("CheckItems")) { CheckItems.LoadDataByWhere("main.Sample_Mix_ID=@Sample_Mix_ID", this.Sample_Mix_ID); } if (loadInfo.Contains("CheckGroups")) { CheckGroups.LoadDataByWhere("main.Sample_Mix_ID=@Sample_Mix_ID", this.Sample_Mix_ID); foreach (var item in CheckGroups) { item.ZySample = this; } } base.AfterLoad(loadInfo); }
private void ButtonRegisterActualStateClick(object sender, EventArgs e) { List <MaintenanceCheckRecord> records = CheckItems.Where(c => c.Grouping) .SelectMany(c => c.PerformanceRecords) .ToList(); List <MaintenanceCheckRecordGroup> maintenanceCheckRecordGroups = new List <MaintenanceCheckRecordGroup>(); foreach (MaintenanceCheckRecord record in records) { MaintenanceCheckRecordGroup recordGroup = maintenanceCheckRecordGroups .FirstOrDefault(g => g.Schedule == record.ParentCheck.Schedule && g.Grouping == record.ParentCheck.Grouping && g.Resource == record.ParentCheck.Resource && g.GroupComplianceNum == record.NumGroup); if (recordGroup != null) { //Коллекция найдена //Поиск в ней группы чеков с нужным типом recordGroup.Records.Add(record); } else { //Коллекции с нужными критериями нет //Созадние и добавление recordGroup = new MaintenanceCheckRecordGroup(record.ParentCheck.Schedule, record.ParentCheck.Grouping, record.ParentCheck.Resource, record.NumGroup); recordGroup.Records.Add(record); maintenanceCheckRecordGroups.Add(recordGroup); } } MaintenanceProgramChangeDialog actualStateDialog = new MaintenanceProgramChangeDialog(_currentAircraft, maintenanceCheckRecordGroups) { Text = "Add new Maintenance program change record" }; actualStateDialog.ShowDialog(); if (actualStateDialog.DialogResult == DialogResult.OK) { InvokeComplianceAdded(null); } }
public List <CheckItems> GetTaskData(string user) { List <CheckItems> items = new List <CheckItems>(); try { connection.Open(); SqlCommand cmd = new SqlCommand(); cmd.Connection = connection; cmd.CommandText = $@"select t.id, t.task, case when cast(c.completed_date as date) = cast(getdate() AS date) then 1 else 0 end as completed from [TaskManagement].[dbo].[tasks] t left join [TaskManagement].[dbo].[tasksCompleted] c on c.task_id = t.id and c.completedBy = @user"; cmd.Parameters.Add("@user", System.Data.SqlDbType.VarChar); cmd.Parameters["@user"].Value = user; SqlDataReader dr = cmd.ExecuteReader(); while (dr.Read()) { CheckItems model = new CheckItems() { id = Convert.ToInt32(dr["id"]), thingToCheck = Convert.ToString(dr["task"]), isCompleted = Convert.ToBoolean(dr["completed"]) }; items.Add(model); } return(items); } catch (SqlException ex) { return(null); } finally { connection.Close(); } }
public void Check(bool isPartial) { m_checkingWS = Util.ServerWorkspace; m_errors.Clear(); m_log.Clear(); m_log.Add("Start Check"); IsCheckTaskData = isPartial; if (isPartial) { LoadCheckItems(); } else { CheckItems.Clear(); } foreach (var checker in Checkers) { m_log.Add("---------------------"); m_log.Add("Checher:" + checker.GetType().ToString()); BaseChecker bc = checker as BaseChecker; if (checker.CheckData()) { if (bc.CheckErrorList != null) { foreach (CheckError err in bc.CheckErrorList) { m_log.Add(err.Description); } m_errors.AddRange(bc.CheckErrorList.OfType <CheckError>()); } m_log.Add("Check Successfully"); } else { m_log.Add("Check Failed"); m_log.Add(bc.Message); } m_log.Add("---------------------"); } m_log.Add("End Check"); }
protected override void AfterSave(System.Data.IDbTransaction trans) { if (SaveCheckGroups) { foreach (var item in CheckGroups) { item.Sample_Mix_ID = this.Sample_Mix_ID; } CheckGroups.Save(trans); } if (SaveCheckItems) { foreach (var item in CheckItems) { item.Sample_Mix_ID = this.Sample_Mix_ID; } CheckItems.Save(trans); } base.AfterSave(trans); }
private void UpdateInformation() { if (_contextMenuStrip == null) { InitToolStripMenuItems(); } listViewCompliance.Items.Clear(); if (CheckItems == null) { return; } var lastRecords = new List <MaintenanceCheckRecord>(); var nextPerformances = new List <NextPerformance>(); //Поиск и заполнение просроченных директив и записей о перемещении //Объекты для в которые будет извлекаться информация //из записеи о перемещении string[] subs; ListViewItem newItem; var aircraftFrame = GlobalObjects.ComponentCore.GetBaseComponentById(_currentAircraft.AircraftFrameId); //прогнозируемый ресурс var forecastData = new ForecastData(DateTime.Now, aircraftFrame.AverageUtilization, GlobalObjects.CasEnvironment.Calculator.GetCurrentFlightLifelength(_currentAircraft)); //GlobalObjects.CasEnvironment.Calculator.GetNextPerformanceGroup(CheckItems, _currentAircraft.Schedule, forecastData); foreach (MaintenanceCheck check in CheckItems) { if (check.Grouping) { foreach (MaintenanceNextPerformance mnp in check.GetPergormanceGroupWhereCheckIsSenior()) { //Добавляются все выполнения, дата которых меньше нынешней //плюс еще одно выполнение дата которого выше нынешней nextPerformances.Add(mnp); if (mnp.PerformanceDate != null && mnp.PerformanceDate > DateTime.Now) { break; } } } else { foreach (NextPerformance mnp in check.NextPerformances) { //Добавляются все выполнения, дата которых меньше нынешней //плюс еще одно выполнение дата которого выше нынешней nextPerformances.Add(mnp); if (mnp.PerformanceDate != null && mnp.PerformanceDate > DateTime.Now) { break; } } } lastRecords.AddRange(check.PerformanceRecords.ToArray()); foreach (MaintenanceDirective mpd in check.BindMpds) { GlobalObjects.PerformanceCalculator.GetNextPerformance(mpd, forecastData); } } //////////////////////////////////////////// //загрузка рабочих пакетов для определения //перекрытых ими выполнений задач if (_openPubWorkPackages == null) { _openPubWorkPackages = new CommonCollection <WorkPackage>(); } _openPubWorkPackages.Clear(); _openPubWorkPackages.AddRange(GlobalObjects.WorkPackageCore.GetWorkPackagesLite(_currentAircraft, WorkPackageStatus.Opened)); _openPubWorkPackages.AddRange(GlobalObjects.WorkPackageCore.GetWorkPackagesLite(_currentAircraft, WorkPackageStatus.Published)); var allWorkPackagesIncludedTask = new CommonCollection <WorkPackage>(); var openPubWorkPackages = new CommonCollection <WorkPackage>(); var closedWorkPackages = new CommonCollection <WorkPackage>(); allWorkPackagesIncludedTask.AddRange(GlobalObjects.WorkPackageCore.GetWorkPackagesLite(_currentAircraft, WorkPackageStatus.All, CheckItems.Select(m => (IDirective)m).ToList())); #region Добавление в список просроченных выполнений //и сравнение их с открытыми и опубликованными рабочими пакетами openPubWorkPackages.AddRange(allWorkPackagesIncludedTask.Where(wp => wp.Status == WorkPackageStatus.Opened || wp.Status == WorkPackageStatus.Published)); //сбор всех записей рабочих пакетов для удобства фильтрации List <WorkPackageRecord> openPubWPRecords = new List <WorkPackageRecord>(); foreach (WorkPackage openWorkPackage in openPubWorkPackages) { openPubWPRecords.AddRange(openWorkPackage.WorkPakageRecords); } //LINQ запрос для сортировки записей по дате List <NextPerformance> sortNextRecords = (from record in nextPerformances orderby record.GetPerformanceDateOrDefault() descending select record).ToList(); for (int i = 0; i < sortNextRecords.Count; i++) { //поиск записи в рабочих пакетах по данному чеку //чей номер группы выполнения (по записи) совпадает с расчитанным MaintenanceCheck check = (MaintenanceCheck)sortNextRecords[i].Parent; //if (check.Name == "5C") //{ //} //номер выполнения int parentCountPerf; if (check.LastPerformance != null) { parentCountPerf = check.LastPerformance.NumGroup <= 0 ? 1 : check.LastPerformance.NumGroup; } else { parentCountPerf = 0; } if (check.Grouping) { MaintenanceNextPerformance mnp = sortNextRecords[i] as MaintenanceNextPerformance; if (mnp != null) { parentCountPerf = mnp.PerformanceGroupNum; } else { parentCountPerf += check.NextPerformances.IndexOf(sortNextRecords[i]); parentCountPerf += 1; } } else { parentCountPerf += check.NextPerformances.IndexOf(sortNextRecords[i]); parentCountPerf += 1; } WorkPackageRecord wpr = openPubWPRecords.Where(r => r.PerformanceNumFromStart == parentCountPerf && r.WorkPackageItemType == check.SmartCoreObjectType.ItemId && r.DirectiveId == check.ItemId).FirstOrDefault(); if (wpr != null) { WorkPackage wp = openPubWorkPackages.GetItemById(wpr.WorkPakageId); //запись о выполнении блокируется найденым пакетом sortNextRecords[i].BlockedByPackage = wp; //последующие записи о выполнении так же должны быть заблокированы for (int j = i - 1; j >= 0; j--) { //блокировать нужно все рабочие записи, или до первой записи, //заблокированной другим рабочим пакетом if (sortNextRecords[j].BlockedByPackage != null && sortNextRecords[j].Parent == check || sortNextRecords[j].Condition != ConditionState.Overdue) { break; } if (sortNextRecords[j].Parent == check) { sortNextRecords[j].BlockedByPackage = wp; listViewCompliance.Items[j].BackColor = Color.FromArgb(Highlight.GrayLight.Color); } } } string type = check.Schedule ? " (Schedule) " : " (Store) "; string resource = check.Resource.ToString(); string grouping = check.Grouping ? " (Group)" : ""; string stringNumGr = (sortNextRecords[i] is MaintenanceNextPerformance ? ((MaintenanceNextPerformance)sortNextRecords[i]).PerformanceGroupNum.ToString() : "N/A") + type + resource + grouping; subs = new[] { stringNumGr, sortNextRecords[i].Title, sortNextRecords[i].PerformanceDate != null ? UsefulMethods.NormalizeDate((DateTime)sortNextRecords[i].PerformanceDate) : "N/A", sortNextRecords[i].PerformanceSource.ToString(), "", }; newItem = new ListViewItem(subs) { Group = listViewCompliance.Groups["next"], Tag = sortNextRecords[i], BackColor = UsefulMethods.GetColor(sortNextRecords[i]) }; listViewCompliance.Items.Add(newItem); } #endregion #region Добавление в список записей о произведенных выполнениях //и сравнение их с закрытыми рабочими пакетами closedWorkPackages.AddRange(allWorkPackagesIncludedTask.Where(wp => wp.Status == WorkPackageStatus.Closed)); //сбор всех записей рабочих пакетов для удобства фильтрации List <WorkPackageRecord> closedWPRecords = new List <WorkPackageRecord>(); foreach (WorkPackage closedWorkPackage in closedWorkPackages) { closedWPRecords.AddRange(closedWorkPackage.WorkPakageRecords); } List <MaintenanceCheckRecordGroup> maintenanceCheckRecordGroups = new List <MaintenanceCheckRecordGroup>(); foreach (MaintenanceCheckRecord record in lastRecords) { //Поиск коллекции групп, в которую входят группы с нужными критериями //по плану, группировка и основному ресурсу if (record.ParentCheck.Grouping) { MaintenanceCheckRecordGroup recordGroup = maintenanceCheckRecordGroups .FirstOrDefault(g => g.Schedule == record.ParentCheck.Schedule && g.Grouping == record.ParentCheck.Grouping && g.Resource == record.ParentCheck.Resource && g.GroupComplianceNum == record.NumGroup); if (recordGroup != null) { //Коллекция найдена //Поиск в ней группы чеков с нужным типом recordGroup.Records.Add(record); } else { //Коллекции с нужными критериями нет //Созадние и добавление recordGroup = new MaintenanceCheckRecordGroup(record.ParentCheck.Schedule, record.ParentCheck.Grouping, record.ParentCheck.Resource, record.NumGroup); recordGroup.Records.Add(record); maintenanceCheckRecordGroups.Add(recordGroup); } } else { MaintenanceCheckRecordGroup recordGroup = new MaintenanceCheckRecordGroup(record.ParentCheck.Schedule, record.ParentCheck.Grouping, record.ParentCheck.Resource); recordGroup.Records.Add(record); maintenanceCheckRecordGroups.Add(recordGroup); } } List <object> tempRecords = new List <object>(); tempRecords.AddRange(maintenanceCheckRecordGroups.ToArray()); tempRecords.AddRange(_currentAircraft.MaintenanceProgramChangeRecords.ToArray()); List <object> sortLastRecords = tempRecords.OrderByDescending(tr => (tr is MaintenanceCheckRecordGroup ? ((MaintenanceCheckRecordGroup)tr).LastGroupComplianceDate : tr is AbstractRecord ? ((AbstractRecord)tr).RecordDate : DateTimeExtend.GetCASMinDateTime())) .ToList(); foreach (object t in sortLastRecords) { if (t is MaintenanceCheckRecordGroup) { MaintenanceCheckRecordGroup mcrg = (MaintenanceCheckRecordGroup)t; MaintenanceCheckRecord directiveRecord = mcrg.Records.First(); MaintenanceCheck parentDirective = (MaintenanceCheck)directiveRecord.Parent; newItem = GetListViewItem(mcrg); WorkPackage workPackage = closedWorkPackages.Where(wp => wp.ItemId == directiveRecord.DirectivePackageId).FirstOrDefault(); if (workPackage != null) { //запись о выполнении блокируется найденым пакетом directiveRecord.DirectivePackage = workPackage; newItem.BackColor = Color.FromArgb(Highlight.Grey.Color); newItem.ToolTipText = "Perform of the task:" + parentDirective.Name + "\nadded by Work Package:" + "\n" + directiveRecord.DirectivePackage.Title + "\nTo remove a performance of task, you need to exclude task from this work package," + "\nor delete the work package "; } listViewCompliance.Items.Add(newItem); } else if (t is MaintenanceProgramChangeRecord) { MaintenanceProgramChangeRecord mpcr = (MaintenanceProgramChangeRecord)t; subs = new[] { "N/A", "Changet to " + mpcr.MSG, UsefulMethods.NormalizeDate(mpcr.RecordDate), mpcr.OnLifelength.ToString(), "", }; newItem = new ListViewItem(subs) { Group = listViewCompliance.Groups["last"], Tag = mpcr, BackColor = Color.FromArgb(Highlight.GrayLight.Color) }; listViewCompliance.Items.Add(newItem); } } #endregion if (_toolStripMenuItemsWorkPackages != null) { foreach (ToolStripMenuItem item in _toolStripMenuItemsWorkPackages.DropDownItems) { item.Click -= AddToWorkPackageItemClick; } _toolStripMenuItemsWorkPackages.DropDownItems.Clear(); foreach (WorkPackage workPackage in _openPubWorkPackages) { ToolStripMenuItem item = new ToolStripMenuItem(workPackage.Title); item.Click += AddToWorkPackageItemClick; item.Tag = workPackage; _toolStripMenuItemsWorkPackages.DropDownItems.Add(item); } } ButtonAdd.Enabled = false; }
private void FindNextCheck() { //вычисление самого последнего выполненного чека, вне зависимости от типа //последний выполненый чек по типу может нессответствовать текущему типу программы //в случае переключения MaintenanceCheck lastComplianceCheck = CheckItems.Where(c => c.LastPerformance != null).OrderByDescending(c => c.LastPerformance.RecordDate).FirstOrDefault(); if (lastComplianceCheck != null && lastComplianceCheck.Schedule != Schedule && Schedule) { //тип программмы Maintenance был переключен, переключение с Unschedule на Schedule //вычисление самого последнего выполненного чека, заданного типа MaintenanceCheck lastComplianceScheduleTypeCheck = CheckItems.Where(c => c.LastPerformance != null && c.Schedule == Schedule).OrderByDescending(c => c.LastPerformance.RecordDate).FirstOrDefault(); MaintenanceCheckGroupByType group = new List <MaintenanceCheck>(CheckItems).GetNextCheckBySourceDifference(lastComplianceScheduleTypeCheck, TsnCsn.Days); //название чеков MaintenanceCheck maxIntervalCheckInGroup = group.GetMaxIntervalCheck(); string tNext = maxIntervalCheckInGroup.Name + " ("; tNext += group.Checks.Aggregate(tNext, (current, maintenanceCheck) => current + (maintenanceCheck.Name + " ")); tNext += ") "; string tNextDate = UsefulMethods.NormalizeDate(group.GroupComplianceDate); group.GroupComplianceLifelength.Cycles = group.GroupComplianceLifelength.Hours = null; string tNextLl = group.GroupComplianceLifelength.ToRepeatIntervalsFormat(); group.GroupComplianceLifelength.Substract(TsnCsn); group.GroupComplianceLifelength.Cycles = group.GroupComplianceLifelength.Hours = null; string tRemainLl = Convert.ToInt32(group.GroupComplianceLifelength.Days).ToString(); Action <string, string, string, string> addLast = AddNextCheckItem; if (InvokeRequired) { Invoke(addLast, tNext, tNextDate, tNextLl, tRemainLl); } else { addLast.Invoke(tNext, tNextDate, tNextLl, tRemainLl); } } else { if (_complianceGroupCollection == null) { _complianceGroupCollection = CheckItems.GetNextComplianceCheckGroups(Schedule).OrderBy(GetNextComplianceDate); } foreach (MaintenanceCheckComplianceGroup complianceGroup in _complianceGroupCollection) { string tNext, tNextDate, tNextLl, tRemainLl; MaintenanceCheck maxIntervalCheckInGroup; if ((maxIntervalCheckInGroup = complianceGroup.GetMaxIntervalCheck()) == null) { continue; } complianceGroup.Sort(); string prefix = complianceGroup.GetGroupName(); if (complianceGroup.Grouping) { MaintenanceCheck lastOrMinCheck = complianceGroup.GetLastComplianceChecks().FirstOrDefault() != null ? complianceGroup.GetLastComplianceChecks().First() : complianceGroup.GetMinIntervalCheck(); //дата следующего выполнения группы чеков if (lastOrMinCheck.Interval.Days != null && lastOrMinCheck.Interval.Days > 0) { DateTime nextDate = lastOrMinCheck.NextPerformances.Count != 0 && lastOrMinCheck.NextPerformances[0].PerformanceDate != null ? lastOrMinCheck.NextPerformances[0].PerformanceDate.Value : lastOrMinCheck.LastPerformance != null ? lastOrMinCheck.LastPerformance.RecordDate.AddDays(Convert.ToInt32(lastOrMinCheck.Interval.Days)) : lastOrMinCheck.ParentAircraft.ManufactureDate.AddDays(Convert.ToInt32(lastOrMinCheck.Interval.Days)); tNextDate = UsefulMethods.NormalizeDate(nextDate); if (lastOrMinCheck.NextPerformances.Count != 0 && lastOrMinCheck.NextPerformances[0].Remains != null) { //Остаток до выполнения Lifelength remains = lastOrMinCheck.NextPerformances[0].Remains; tRemainLl = remains.IsNullOrZero() ? "N/A" : remains.ToString(); } else { tRemainLl = " N/A "; } } else { tNextDate = lastOrMinCheck.NextPerformances.Count != 0 && lastOrMinCheck.NextPerformances[0].PerformanceDate != null ? " approx. " + UsefulMethods.NormalizeDate(lastOrMinCheck.NextPerformances[0].PerformanceDate.Value) : " N/A "; if (lastOrMinCheck.NextPerformances.Count != 0 && lastOrMinCheck.NextPerformances[0].Remains != null) { //Остаток до выполнения Lifelength remains = lastOrMinCheck.NextPerformances[0].Remains; tRemainLl = remains.IsNullOrZero() ? "N/A" : remains.ToString(); } else { tRemainLl = " N/A "; } } //ресурс, на котором надо поризвести выполнение //след выполнение Lifelength next = lastOrMinCheck.NextPerformances.Count != 0 ? lastOrMinCheck.NextPerformances[0].PerformanceSource : Lifelength.Null; next.Resemble(maxIntervalCheckInGroup.Interval); tNextLl = next.IsNullOrZero() ? "N/A" : next.ToString(); //название чеков tNext = prefix; if (lastOrMinCheck.ParentAircraft != null && lastOrMinCheck.ParentAircraft.MSG < MSG.MSG3) { tNext += " ("; tNext = complianceGroup.Checks.Aggregate(tNext, (current, maintenanceCheck) => current + (maintenanceCheck.Name + " ")); tNext += ") "; } Action <string, string, string, string> addLast = AddNextCheckItem; if (InvokeRequired) { Invoke(addLast, tNext, tNextDate, tNextLl, tRemainLl); } else { addLast.Invoke(tNext, tNextDate, tNextLl, tRemainLl); } } else { foreach (MaintenanceCheck maintenanceCheck in complianceGroup.Checks) { DateTime nextDate; if (maintenanceCheck.Interval.Days != null && maintenanceCheck.Interval.Days > 0) { nextDate = maintenanceCheck.NextPerformances.Count != 0 && maintenanceCheck.NextPerformances[0].PerformanceDate != null ? maintenanceCheck.NextPerformances[0].PerformanceDate.Value : maintenanceCheck.LastPerformance != null ? maintenanceCheck.LastPerformance.RecordDate.AddDays(Convert.ToInt32(maintenanceCheck.Interval.Days)) : maintenanceCheck.ParentAircraft.ManufactureDate.AddDays(Convert.ToInt32(maintenanceCheck.Interval.Days)); tNextDate = "\n" + UsefulMethods.NormalizeDate(nextDate); if (maintenanceCheck.NextPerformances.Count != 0 && maintenanceCheck.NextPerformances[0].Remains != null) { //Остаток до выполнения Lifelength remains = maintenanceCheck.NextPerformances[0].Remains; tRemainLl = "\n" + (remains.IsNullOrZero() ? "N/A" : remains.ToString()); } else { tRemainLl = "\n N/A "; } } else { if (maintenanceCheck.NextPerformanceDate != null) { nextDate = maintenanceCheck.NextPerformanceDate.Value; tNextDate = "\n approx. " + UsefulMethods.NormalizeDate(nextDate); } else { tNextDate = "\n (N/A) "; } if (maintenanceCheck.NextPerformances.Count != 0 && maintenanceCheck.NextPerformances[0].Remains != null) { //Остаток до выполнения Lifelength remains = maintenanceCheck.NextPerformances[0].Remains; tRemainLl = "\n" + (remains.IsNullOrZero() ? "N/A" : remains.ToString()); } else { tRemainLl = "\n (N/A) "; } } //след выполнение Lifelength next = maintenanceCheck.NextPerformances.Count != 0 ? maintenanceCheck.NextPerformances[0].PerformanceSource : Lifelength.Null; tNextLl = "\n" + (next.IsNullOrZero() ? "N/A" : next.ToString()); //название чеков tNext = "\n" + maintenanceCheck.Name + " "; Action <string, string, string, string> addLast = AddNextCheckItem; if (InvokeRequired) { Invoke(addLast, tNext, tNextDate, tNextLl, tRemainLl); } else { addLast.Invoke(tNext, tNextDate, tNextLl, tRemainLl); } } } } } }
private void FindLastCheck() { MaintenanceCheckGroupCollection[] groupByType = CheckItems.GroupingCheckByType(Schedule) .OrderByDescending(g => g.GetLastComplianceDate()) .ToArray(); MaintenanceCheckGroupCollection checkGroupCollectionOrdered = new MaintenanceCheckGroupCollection(groupByType.SelectMany(gbt => gbt.ToArray()) .OrderByDescending(gbt => gbt.LastComplianceGroupDate)); foreach (MaintenanceCheckGroupByType checkGroupByType in checkGroupCollectionOrdered) { string lastCheck = "", lastComplianceDate = "", lastComplianceLl = ""; DateTime last = DateTimeExtend.GetCASMinDateTime(); if (checkGroupByType.Grouping) { //Вычисление последней даты выполнения чеков данного типа //A, B или C foreach (MaintenanceCheck checkItem in checkGroupByType.Checks.Where(c => c.Schedule == Schedule)) { if (checkItem.LastPerformance != null && last < checkItem.LastPerformance.RecordDate) { last = checkItem.LastPerformance.RecordDate; } } //Если чеки с данным типом (A, B или C) еще не выполнялись //то производится переход на след. тип. чека if (last <= DateTimeExtend.GetCASMinDateTime() || last <= checkGroupCollectionOrdered.GetLastComplianceDateOfCheckWithHigherType(checkGroupByType.Schedule, checkGroupByType.Resource, checkGroupByType.Grouping, checkGroupByType.CheckType)) { continue; } //lastGroupComplianceDates[checkGroupByType.Resource] = last; //Если чеки с данным типом выполнялись //то собирается група из чеков данного типа (A, B или C), //чья дата выполнения равна найденой MaintenanceCheckComplianceGroup lastComplianceGroup = new MaintenanceCheckComplianceGroup(Schedule); foreach (MaintenanceCheck checkItem in checkGroupByType.Checks.Where(c => c.Schedule == Schedule)) { if (checkItem.LastPerformance != null && last == checkItem.LastPerformance.RecordDate) { lastComplianceGroup.Checks.Add(checkItem); if (lastComplianceGroup.CheckCycle < checkGroupByType.CheckCycle) { lastComplianceGroup.CheckCycle = checkGroupByType.CheckCycle; } if (lastComplianceGroup.GroupComplianceNum < checkItem.LastPerformance.NumGroup) { lastComplianceGroup.GroupComplianceNum = checkItem.LastPerformance.NumGroup; } } } MaintenanceCheck maxIntervalCheckInGroup; //Поиск старшего чека данного типа в собранной группе //Если его нет, переход к след. типу чеков if ((maxIntervalCheckInGroup = lastComplianceGroup.GetMaxIntervalCheck()) == null) { continue; } //Упорядочивание собранной группы lastComplianceGroup.Sort(); string prefix = lastComplianceGroup.GetComplianceGroupName(); lastComplianceDate = UsefulMethods.NormalizeDate(last); lastComplianceLl = maxIntervalCheckInGroup.LastPerformance.OnLifelength.ToString(); //название чеков lastCheck = prefix; if (maxIntervalCheckInGroup.ParentAircraft != null && maxIntervalCheckInGroup.ParentAircraft.MSG < MSG.MSG3) { lastCheck += " ("; lastCheck += lastComplianceGroup.Checks.Aggregate(lastCheck, (current, maintenanceCheck) => current + (maintenanceCheck.Name + " ")); lastCheck += ") "; } Action <string, string, string> addLast = AddLastCheckItem; if (InvokeRequired) { Invoke(addLast, lastCheck, lastComplianceDate, lastComplianceLl); } else { addLast.Invoke(lastCheck, lastComplianceDate, lastComplianceLl); } } else { foreach (MaintenanceCheck checkItem in checkGroupByType.Checks.Where(c => c.Schedule == Schedule)) { if (checkItem.LastPerformance != null) { lastComplianceDate = UsefulMethods.NormalizeDate(checkItem.LastPerformance.RecordDate); lastComplianceLl = checkItem.LastPerformance.OnLifelength.ToString(); //название чеков lastCheck = checkItem.Name; } Action <string, string, string> addLast = AddLastCheckItem; if (InvokeRequired) { Invoke(addLast, lastCheck, lastComplianceDate, lastComplianceLl); } else { addLast.Invoke(lastCheck, lastComplianceDate, lastComplianceLl); } } } } }
public void ItemAdd(CheckItems data) { CheckExe.Add(data); }
private void LoadCheckItems(string taskName, bool isPartial) { CheckItems.Clear(); CheckItemCount = 0; IFeatureWorkspace ws = Util.ServerWorkspace as IFeatureWorkspace; IWorkspace2 ws2 = ws as IWorkspace2; if (isPartial) { //Check point items IFeatureClass fc = ws.OpenFeatureClass("CheckItemPtn"); IQueryFilter filter = new QueryFilterClass(); filter.WhereClause = "VersionName ='" + taskName + "'"; IFeatureCursor cur = fc.Search(filter, false); IFeature fea = cur.NextFeature(); while (fea != null) { string fc_name = fea.get_Value(fc.FindField("FeatureClassName")) as string; int fc_id = (int)fea.get_Value(fc.FindField("FeatureID")); if (CheckItems.ContainsKey(fc_name)) { List <int> ids; CheckItems.TryGetValue(fc_name, out ids); ids.Add(fc_id); CheckItems[fc_name] = ids; } else { List <int> ids = new List <int>(); ids.Add(fc_id); CheckItems.Add(fc_name, ids); } CheckItemCount++; fea = cur.NextFeature(); } //Check line items fc = ws.OpenFeatureClass("CheckItemLn"); cur = fc.Search(filter, false); fea = cur.NextFeature(); while (fea != null) { string fc_name = fea.get_Value(fc.FindField("FeatureClassName")) as string; int fc_id = (int)fea.get_Value(fc.FindField("FeatureID")); if (CheckItems.ContainsKey(fc_name)) { List <int> ids; CheckItems.TryGetValue(fc_name, out ids); ids.Add(fc_id); CheckItems[fc_name] = ids; } else { List <int> ids = new List <int>(); ids.Add(fc_id); CheckItems.Add(fc_name, ids); } CheckItemCount++; fea = cur.NextFeature(); } //Check polygon items fc = ws.OpenFeatureClass("CheckItemPoly"); cur = fc.Search(filter, false); fea = cur.NextFeature(); while (fea != null) { string fc_name = fea.get_Value(fc.FindField("FeatureClassName")) as string; int fc_id = (int)fea.get_Value(fc.FindField("FeatureID")); if (CheckItems.ContainsKey(fc_name)) { List <int> ids; CheckItems.TryGetValue(fc_name, out ids); ids.Add(fc_id); CheckItems[fc_name] = ids; } else { List <int> ids = new List <int>(); ids.Add(fc_id); CheckItems.Add(fc_name, ids); } CheckItemCount++; fea = cur.NextFeature(); } } else { HashSet <string> targets = new HashSet <string>(); foreach (BaseChecker checker in Checkers) { targets.Add(checker.GetCheckingTarget()); } TaskManager tm = TaskManager.GetInstance(); IPolygon area = tm.GetTaskLocation(taskName); ISpatialFilter filter = new SpatialFilter(); filter.Geometry = area; //filter.GeometryField = "Shape"; filter.SubFields = ""; filter.SpatialRel = esriSpatialRelEnum.esriSpatialRelIntersects; foreach (string target in targets) { if (!ws2.get_NameExists(esriDatasetType.esriDTFeatureClass, target)) { continue; } IFeatureClass fc = ws.OpenFeatureClass(target); IFeatureCursor cur = fc.Search(filter, true); IFeature fea = cur.NextFeature(); while (fea != null) { int fc_id = fea.OID; if (CheckItems.ContainsKey(target)) { List <int> ids; CheckItems.TryGetValue(target, out ids); ids.Add(fc_id); CheckItems[target] = ids; } else { List <int> ids = new List <int>(); ids.Add(fc_id); CheckItems.Add(target, ids); } CheckItemCount++; fea = cur.NextFeature(); } } } }
public CheckedItem GetCheckItem(object target) { return(CheckItems.FirstOrDefault(x => x.Item == target)); }
private void Edit() { DialogResult dlgResult = DialogResult.None; if (listViewCompliance.SelectedItems[0].Group == listViewCompliance.Groups["overdue"]) { MaintenanceComplainceForm complainceForm = new MaintenanceComplainceForm(_currentAircraft, (MaintenanceCheckGroupByType)listViewCompliance.SelectedItems[0].Tag); dlgResult = complainceForm.ShowDialog(this); } else if (listViewCompliance.SelectedItems[0].Group == listViewCompliance.Groups["next"]) { if (listViewCompliance.SelectedItems[0].Tag is NextPerformance) { NextPerformance np = (NextPerformance)listViewCompliance.SelectedItems[0].Tag; //if (np.Condition != ConditionState.Overdue || np.PerformanceDate > DateTime.Now) //{ // MessageBox.Show("You can not enter a record for not delayed performance", // (string)new GlobalTermsProvider()["SystemName"], // MessageBoxButtons.OK, // MessageBoxIcon.Warning, // MessageBoxDefaultButton.Button1); // return; //} if (np.BlockedByPackage != null) { MessageBox.Show("Perform of the task:" + listViewCompliance.SelectedItems[0].Text + "\nblocked by Work Package:" + "\n" + np.BlockedByPackage.Title, (string)new GlobalTermsProvider()["SystemName"], MessageBoxButtons.OK, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1); return; } } if (listViewCompliance.SelectedItems[0].Tag is MaintenanceNextPerformance) { MaintenanceNextPerformance mnp = listViewCompliance.SelectedItems[0].Tag as MaintenanceNextPerformance; if (mnp.PerformanceGroup == null) { return; } MaintenanceCheckGroupByType pg = mnp.PerformanceGroup; MaintenanceComplainceForm complainceForm = new MaintenanceComplainceForm(_currentAircraft, pg); dlgResult = complainceForm.ShowDialog(this); } else if (listViewCompliance.SelectedItems[0].Tag is NextPerformance) { NextPerformance np = listViewCompliance.SelectedItems[0].Tag as NextPerformance; if (np.Parent == null) { return; } MaintenanceComplainceForm complainceForm = new MaintenanceComplainceForm(_currentAircraft, np); dlgResult = complainceForm.ShowDialog(this); } } else if (listViewCompliance.SelectedItems[0].Group == listViewCompliance.Groups["last"]) { if (listViewCompliance.SelectedItems[0].Tag is List <MaintenanceCheckRecord> ) { MaintenanceComplainceForm complainceForm = new MaintenanceComplainceForm(_currentAircraft, (List <MaintenanceCheckRecord>)listViewCompliance.SelectedItems[0].Tag); dlgResult = complainceForm.ShowDialog(this); } else if (listViewCompliance.SelectedItems[0].Tag is MaintenanceProgramChangeRecord) { List <MaintenanceCheckRecord> records = CheckItems.Where(c => c.Grouping) .SelectMany(c => c.PerformanceRecords) .ToList(); List <MaintenanceCheckRecordGroup> maintenanceCheckRecordGroups = new List <MaintenanceCheckRecordGroup>(); foreach (MaintenanceCheckRecord record in records) { MaintenanceCheckRecordGroup recordGroup = maintenanceCheckRecordGroups .FirstOrDefault(g => g.Schedule == record.ParentCheck.Schedule && g.Grouping == record.ParentCheck.Grouping && g.Resource == record.ParentCheck.Resource && g.GroupComplianceNum == record.NumGroup); if (recordGroup != null) { //Коллекция найдена //Поиск в ней группы чеков с нужным типом recordGroup.Records.Add(record); } else { //Коллекции с нужными критериями нет //Созадние и добавление recordGroup = new MaintenanceCheckRecordGroup(record.ParentCheck.Schedule, record.ParentCheck.Grouping, record.ParentCheck.Resource, record.NumGroup); recordGroup.Records.Add(record); maintenanceCheckRecordGroups.Add(recordGroup); } } MaintenanceProgramChangeDialog complainceForm = new MaintenanceProgramChangeDialog((MaintenanceProgramChangeRecord)listViewCompliance.SelectedItems[0].Tag, maintenanceCheckRecordGroups); dlgResult = complainceForm.ShowDialog(this); } //MaintenanceComplainceForm complainceForm = new MaintenanceComplainceForm //{ // PerformanceRecords = ((List<MaintenanceCheckRecord>) // listViewCompliance.SelectedItems[0].Tag), // CurrentAircraft = this.CurentAircraft, // NumGroup = ((List<MaintenanceCheckRecord>) // listViewCompliance.SelectedItems[0].Tag)[0].NumGroup //}; // dlgResult = complainceForm.ShowDialog(this); } if (dlgResult == DialogResult.OK) { InvokeComplianceAdded(null); } }
public ActionResult Master() { CheckItems ListOfItems = new CheckItems(); return(View(ListOfItems.GetItems())); }
public async Task SaveTaskTest() { var result = await _taskServices.SendResult(_serviceVisitId, _serviceVisitItemNumber, ThisResult, CheckItems.ToList()); if (result) { await Application.Current.MainPage.DisplayAlert("Save successful", "The test result has been successfully saved", "OK"); } else { await Application.Current.MainPage.DisplayAlert("Save failed", "An error occured when trying to save the test result. Plesae try again", "OK"); } }