示例#1
0
        private void AddRequest()
        {
            var viewModel = new RequestDialogViewModel();
            var view      = new RequestDialog(viewModel);

            viewModel.SetView(view);
            view.Show();
        }
示例#2
0
        private void OpenRequest(object sender)
        {
            var selectedItem = sender as RequestForListDto;

            if (selectedItem == null)
            {
                return;
            }
            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;
            viewModel.FromTime       = request.FromTime;
            viewModel.ToTime         = request.ToTime;
            var requestModel = viewModel.RequestList.FirstOrDefault();

            requestModel.SelectedParentService = requestModel.ParentServiceList.FirstOrDefault(i => i.Id == request.Type.ParentId);
            requestModel.SelectedService       = requestModel.ServiceList.FirstOrDefault(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.SelectedMaster        = request.MasterId.HasValue ? _requestService.GetWorkerById(request.MasterId.Value) : null;
            requestModel.SelectedExecuter      = request.ExecuterId.HasValue ? _requestService.GetWorkerById(request.ExecuterId.Value) : null;
            requestModel.RequestId             = request.Id;
            requestModel.Rating = request.Rating;
            if (request.ServiceCompanyId.HasValue)
            {
                requestModel.SelectedCompany = requestModel.CompanyList.FirstOrDefault(c => c.Id == request.ServiceCompanyId.Value);
            }
            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);
            }
            requestModel.TermOfExecution = request.TermOfExecution;
            viewModel.RequestId          = request.Id;
            viewModel.ContactList        = new ObservableCollection <ContactDto>(request.Contacts);
            view.Show();
        }
示例#3
0
        public void ShowRequestDialog(string title, string message, Action <IEnumerable <string> > closed)
        {
            if (_dxSwapChainPanel == null)
            {
                throw new InvalidOperationException("WSANativeFacebook.ConfigureDialogs must first be called from MainPage.xaml.cs");
            }

            Dictionary <string, string> parameters = new Dictionary <string, string>()
            {
                { "title", title },
                { "message", message },
            };

            string requestBaseUri = string.Format("{0}?app_id={1}&display=popup&redirect_uri={2}", WSAFacebookConstants.RequestDialogUri, _facebookAppId, WSAFacebookConstants.WebRedirectUri);

            RequestDialog dialog = new RequestDialog(Screen.width, Screen.height);

            dialog.Show(requestBaseUri, parameters, WSAFacebookConstants.RequestDialogResponseUri, _dxSwapChainPanel, closed);
        }
示例#4
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;
        }
        private async UniTask Open(RequestDialog request)
        {
            Context context = null;

            if (!_contexts.TryGetValue(request.Name, out context))
            {
                var dialogObject = await _factory.Spawn(request.Name);

                context = new Context()
                {
                    Dialog = dialogObject.GetComponent <IDialog>(),
                    Object = dialogObject,
                };
                _contexts.Add(request.Name, context);
            }

            await Open(new Request()
            {
                Dialog = context.Dialog,
                Param  = request.Param,
            });
        }
示例#6
0
 public async Task SendRequestForChat(RequestDialog requestDialog)
 {
     await Clients.User(requestDialog.RecipientEmail).SendAsync("NewChatRequest", requestDialog);
 }
示例#7
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());
                            }
                    }
                }
            }
        }
示例#8
0
        public void OpenRequest(object sender)
        {
            var selectedItem = sender as RequestForListDto;

            if (selectedItem == null)
            {
                return;
            }
            if (_requestService == null)
            {
                _requestService = new RequestServiceImpl.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.RequestId      = request.Id;
            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;
            viewModel.FromTime       = request.FromTime;
            viewModel.ToTime         = request.ToTime;
            var requestModel           = viewModel.RequestList.FirstOrDefault();
            var selectedParrentService = requestModel.ParentServiceList.SingleOrDefault(i => i.Id == request.Type.ParentId);

            if (selectedParrentService == null)
            {
                var parrentServiceType = _requestService.GetServiceById(request.Type.ParentId ?? 0);
                requestModel.ParentServiceList.Add(parrentServiceType);
                selectedParrentService = requestModel.ParentServiceList.SingleOrDefault(i => i.Id == request.Type.ParentId);
            }
            requestModel.SelectedParentService = selectedParrentService;
            var service = requestModel.ServiceList.SingleOrDefault(i => i.Id == request.Type.Id);

            if (service == null)
            {
                var serviceType = _requestService.GetServiceById(request.Type.Id);
                requestModel.ServiceList.Add(serviceType);
                service = requestModel.ServiceList.SingleOrDefault(i => i.Id == request.Type.Id);
            }
            requestModel.SelectedService = service;
            requestModel.Description     = request.Description;
            requestModel.IsChargeable    = request.IsChargeable;
            requestModel.IsImmediate     = request.IsImmediate;
            requestModel.IsBadWork       = request.IsBadWork;
            requestModel.IsRetry         = request.IsRetry;
            //requestModel.Gatanty = request.Warranty;
            requestModel.SelectedGaranty = requestModel.GarantyList.FirstOrDefault(g => g.Id == request.GarantyId);

            requestModel.RequestCreator = request.CreateUser.ShortName;
            requestModel.RequestDate    = request.CreateTime;
            requestModel.RequestState   = request.State.Description;
            var sched = _requestService.GetScheduleTaskByRequestId(request.Id);

            requestModel.SelectedAppointment = sched != null?new Appointment()
            {
                Id        = sched.Id,
                RequestId = sched.RequestId,
                StartTime = sched.FromDate,
                EndTime   = sched.ToDate,
            }: null;
            requestModel.OpenAppointment = requestModel.SelectedAppointment;
            var master = request.MasterId.HasValue ? _requestService.GetWorkerById(request.MasterId.Value) : null;

            if (master != null)
            {
                if (requestModel.MasterList.Count == 0 || requestModel.MasterList.All(e => e.Id != master.Id))
                {
                    requestModel.MasterList.Add(master);
                }
                requestModel.SelectedMaster = requestModel.MasterList.SingleOrDefault(i => i.Id == master.Id);
            }
            else
            {
                requestModel.SelectedMaster = null;
            }

            var executer = request.ExecuterId.HasValue ? _requestService.GetWorkerById(request.ExecuterId.Value) : null;

            if (executer != null)
            {
                if (requestModel.ExecuterList.All(e => e.Id != executer.Id))
                {
                    requestModel.ExecuterList.Add(executer);
                }
                requestModel.SelectedExecuter = requestModel.ExecuterList.SingleOrDefault(i => i.Id == executer.Id);
            }
            else
            {
                requestModel.SelectedExecuter = null;
            }
            requestModel.SelectedEquipment = requestModel.EquipmentList.SingleOrDefault(e => e.Id == request.Equipment?.Id);
            requestModel.RequestId         = request.Id;
            requestModel.Rating            = request.Rating;
            requestModel.AlertTime         = request.AlertTime;
            if (request.ServiceCompanyId.HasValue)
            {
                requestModel.SelectedCompany = requestModel.CompanyList.FirstOrDefault(c => c.Id == request.ServiceCompanyId.Value);
            }
            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);
            }
            requestModel.TermOfExecution = request.TermOfExecution;
            viewModel.ContactList        = new ObservableCollection <ContactDto>(request.Contacts);
            view.Show();
        }