private void AddRequest() { var viewModel = new RequestDialogViewModel(); var view = new RequestDialog(viewModel); viewModel.SetView(view); var t = view.ShowDialog(); }
private void OpenRequest(object sender) { var selectedItem = sender as RequestForListDto; if (selectedItem == null) { return; } if (_requestService == null) { _requestService = new RequestService(AppSettings.DbConnection); } var request = _requestService.GetRequest(selectedItem.Id); if (request == null) { MessageBox.Show("Произошла непредвиденная ошибка!"); return; } var viewModel = new RequestDialogViewModel(); var view = new RequestDialog(viewModel); viewModel.SetView(view); viewModel.SelectedCity = viewModel.CityList.SingleOrDefault(i => i.Id == request.Address.CityId); viewModel.SelectedStreet = viewModel.StreetList.SingleOrDefault(i => i.Id == request.Address.StreetId); viewModel.SelectedHouse = viewModel.HouseList.SingleOrDefault(i => i.Id == request.Address.HouseId); viewModel.SelectedFlat = viewModel.FlatList.SingleOrDefault(i => i.Id == request.Address.Id); viewModel.Floor = request.Floor; viewModel.Entrance = request.Entrance; var requestModel = viewModel.RequestList.FirstOrDefault(); requestModel.SelectedParentService = requestModel.ParentServiceList.SingleOrDefault(i => i.Id == request.Type.ParentId); requestModel.SelectedService = requestModel.ServiceList.SingleOrDefault(i => i.Id == request.Type.Id); requestModel.Description = request.Description; requestModel.IsChargeable = request.IsChargeable; requestModel.IsImmediate = request.IsImmediate; requestModel.RequestCreator = request.CreateUser.ShortName; requestModel.RequestDate = request.CreateTime; requestModel.RequestState = request.State.Description; requestModel.SelectedWorker = requestModel.WorkerList.SingleOrDefault(w => w.Id == request.ExecutorId); requestModel.RequestId = request.Id; requestModel.Rating = request.Rating; if (request.ExecuteDate.HasValue && request.ExecuteDate.Value.Date > DateTime.MinValue) { requestModel.SelectedDateTime = request.ExecuteDate.Value.Date; requestModel.SelectedPeriod = requestModel.PeriodList.SingleOrDefault(i => i.Id == request.PeriodId); } viewModel.RequestId = request.Id; viewModel.ContactList = new ObservableCollection <ContactDto>(request.Contacts); var t = view.ShowDialog(); }
void DataGridView1_RowsAdded(object sender, DataGridViewRowsAddedEventArgs e) { var grid = (DataGridView)sender; var row = grid.Rows[e.RowIndex]; var msg = (Contact)row.DataBoundItem; var menu = new ContextMenuStrip(); var reqs = AddinExtensions.GetFiltered <RequestDescAttribute, IRequest>().ToArray(); foreach (var pair in reqs) { var req = pair.Value; var name = req.GetType().Name.Replace(typeof(IRequest) .Name.Substring(1), string.Empty); var icon = (Image)Icons.ResourceManager.GetObject(name); EventHandler onclick = (s, a) => { var userReq = (IMessage)Activator.CreateInstance(req.GetType()); using (var dialog = new RequestDialog(req, icon)) if (dialog.ShowDialog(this) == DialogResult.OK) { Client.Publish(msg.Id, req); } }; var item = new ToolStripMenuItem(name, icon, onclick); var category = pair.Key?.Category; if (string.IsNullOrWhiteSpace(category)) { menu.Items.Add(item); } else { var subMenu = menu.Items.OfType <ToolStripDropDownItem>().FirstOrDefault(i => i.Text == category); if (subMenu == null) { menu.Items.Add(subMenu = new ToolStripMenuItem(category, Icons.Category)); } subMenu.DropDownItems.Add(item); } } row.ContextMenuStrip = menu; }
/// <summary> /// Method which adds a tag to the Version List of passed NAV object files. /// </summary> /// <param name="files">The collection of files to update</param> /// <param name="version">The target version of NAV</param> /// <param name="tag">The tag to add to the version list</param> /// <param name="ignoreCase">Specify whether use case-sensitive insert</param> /// <param name="updateDateTime">Specifies whether Date and Time must be updated</param> /// <param name="progress">The progress of the operation</param> public static void AddTag(Models.File[] files, int version, string tag, bool ignoreCase, bool updateDateTime, IProgress <KeyValuePair <double, string> > progress) { double progressStep = (double)100 / files.Length; double step = 0; DateTime dateTime = DateTime.Now; DateTimeFormatInfo dateTimeFormat; if (string.IsNullOrWhiteSpace(Properties.Settings.Default.DefaultLocale)) { dateTimeFormat = new CultureInfo(Thread.CurrentThread.CurrentCulture.Name, false).DateTimeFormat; } else { dateTimeFormat = new CultureInfo(Properties.Settings.Default.DefaultLocale, false).DateTimeFormat; } foreach (Models.File file in files) { step += progressStep; progress.Report(new KeyValuePair <double, string>(step, string.Format("Adding tag {0} to {1}", tag, file.Name))); if (System.IO.File.Exists(file.Path)) { string lines; using (FileStream stream = new FileStream(file.Path, FileMode.Open, FileAccess.Read)) using (StreamReader reader = new StreamReader(stream, Encoding.GetEncoding(Properties.Settings.Default.DefaultEncoding))) { lines = reader.ReadToEnd(); } if (!string.IsNullOrWhiteSpace(lines) && lines.Contains(" OBJECT-PROPERTIES")) { StringBuilder builder = new StringBuilder(); foreach (string navObjectLines in Split(lines)) { using (StringReader reader = new StringReader(navObjectLines)) { string line; string firstLine = ""; bool firstLineRead = false; while ((line = reader.ReadLine()) != null) { if (!firstLineRead) { firstLine = line; firstLineRead = true; } if (line.StartsWith(" OBJECT-PROPERTIES")) { builder.AppendLine(line); builder.AppendLine(reader.ReadLine()); line = reader.ReadLine(); if (line.StartsWith(" Date=") && updateDateTime) { line = string.Format(" Date={0};", Convert.ToDateTime(dateTime, dateTimeFormat).ToString(dateTimeFormat.ShortDatePattern)); } builder.AppendLine(line); line = reader.ReadLine(); if (line.StartsWith(" Time=") && updateDateTime) { line = string.Format(" Time={0:HH:mm:ss};", dateTime); } builder.AppendLine(line); line = reader.ReadLine(); if (line.StartsWith(" Modified=")) { builder.AppendLine(line); line = reader.ReadLine(); } if (line.StartsWith(" Version List=")) { string versionList = line.Substring(17); // Get version list tags versionList = versionList.Substring(0, versionList.Length - 1); // Remove leading ; string[] tags = versionList.Split(','); StringComparison comparison = StringComparison.Ordinal; if (ignoreCase) { comparison = StringComparison.OrdinalIgnoreCase; } if (Array.FindIndex(tags, item => item.Equals(tag, comparison)) == -1) { StringBuilder versionBuilder = new StringBuilder(versionList); versionBuilder.Append(","); versionBuilder.Append(tag); versionBuilder.Replace(",,", ","); switch (version) { case 0: // NAV 2013 and below { if (versionBuilder.Length > 80) { Application.Current.Dispatcher.Invoke(delegate { RequestDialog requestDialog = new RequestDialog(versionBuilder.ToString(), 80, firstLine); if (requestDialog.ShowDialog() == true) { versionBuilder = new StringBuilder(requestDialog.VersionList); } }); } break; } default: // NAV 2015 and above { if (versionBuilder.Length > 250) { Application.Current.Dispatcher.Invoke(delegate { RequestDialog requestDialog = new RequestDialog(versionBuilder.ToString(), 250, firstLine); if (requestDialog.ShowDialog() == true) { versionBuilder = new StringBuilder(requestDialog.VersionList); } }); } break; } } versionBuilder.Insert(0, " Version List="); versionBuilder.Append(";"); versionBuilder.Replace(",;", ";"); versionBuilder.Replace(",,", ","); versionBuilder.Replace("=,", "="); line = versionBuilder.ToString(); } } builder.AppendLine(line); builder.Append(reader.ReadToEnd()); } else { builder.AppendLine(line); } } } } using (FileStream stream = new FileStream(file.Path, FileMode.Truncate, FileAccess.Write)) using (StreamWriter writer = new StreamWriter(stream, Encoding.GetEncoding(Properties.Settings.Default.DefaultEncoding))) { writer.Write(builder.ToString()); } } } } }