Пример #1
0
        private void SendSmsToWorker(object obj)
        {
            var request        = _requestService.GetRequest(_requestId);
            var smsSettings    = _requestService.GetSmsSettingsForServiceCompany(request.ServiceCompanyId);
            var service        = _requestService.GetServiceById(request.Type.Id);
            var parrentService = request.Type.ParentId.HasValue ? _requestService.GetServiceById(request.Type.ParentId.Value) : null;

            if (!((parrentService?.CanSendSms ?? true) && service.CanSendSms))
            {
                return;
            }

            if (!request.MasterId.HasValue)
            {
                return;
            }
            var worker = _requestService.GetWorkerById(request.MasterId.Value);

            if (!worker.SendSms)
            {
                return;
            }
            string phones = "";

            if (request.Contacts != null && request.Contacts.Length > 0)
            {
                phones = request.Contacts.OrderBy(c => c.IsMain).Select(c =>
                {
                    var retVal = c.PhoneNumber.Length == 10 ? "8" + c.PhoneNumber : c.PhoneNumber;
                    //if (!string.IsNullOrEmpty(c.Name))
                    //{
                    //    retVal += $" - {c.Name}";
                    //}
                    return(retVal);
                }
                                                                        ).FirstOrDefault();
            }
            //.Aggregate((i, j) => i + ";" + j);
            if (smsSettings.SendToWorker)
            {
                var smsText = $"{request.Id} {phones} {request.Address.FullAddress}.{request.Type.Name}({request.Description})".Substring(0, 70);
                //var smsText = $"№ {request.Id}. {request.Type.Name}({request.Description}) {request.Address.FullAddress}. {phones}.";
                _requestService.SendSms(request.Id, smsSettings.Sender, worker.Phone, smsText, false);
                //_requestService.SendSms(request.Id, smsSettings.Sender, worker.Phone,
                //    $"№ {request.Id}. {request.Type.ParentName}/{request.Type.Name}({request.Description}) {request.Address.FullAddress}. {phones}.",
                //    false);
                MessageBox.Show(Application.Current.MainWindow, "Сообщение поставлено в очередь на отправку!", "Сообщение");
                RefreshLists();
            }
        }