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();
        }
示例#3
0
        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;
        }
示例#4
0
        /// <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());
                            }
                    }
                }
            }
        }