internal async Task <string> mSms_DocServicePurches( DbConnectionSklad db, DirSmsTemplate dirSmsTemplate, DocServicePurch docServicePurch, Models.Sklad.Sys.SysSetting sysSetting ) { string ret = dirSmsTemplate.DirSmsTemplateMsg; //Парсим текст //Ваш (тип устройства/марка/модель) Mob.tel/Nokia/535 принят в ремонт, номер ремонта 2005 //Мастерская Сити-Мастер //тел (тут вставляем номер тел точки чтоб чел мог набрать) //1. DirServiceNomenName: надо получить полное наименование Controllers.Sklad.Doc.DocServicePurches.DocServicePurchesController docServicePurchesController = new Controllers.Sklad.Doc.DocServicePurches.DocServicePurchesController(); string[] DirServiceNomenPatchFullarr = await Task.Run(() => docServicePurchesController.mPatchFull(db, docServicePurch.DirServiceNomenID)); string DirServiceNomenPatchFull = DirServiceNomenPatchFullarr[0]; ret = ret.Replace("[[[ТоварНаименование]]]", DirServiceNomenPatchFull); //2. DocServicePurchID ret = ret.Replace("[[[ДокументНомер]]]", docServicePurch.DocServicePurchID.ToString()); //3. Организация: получаем из настроек Models.Sklad.Dir.DirContractor dirContractor = await db.DirContractors.FindAsync(sysSetting.DirContractorIDOrg); ret = ret.Replace("[[[Организация]]]", dirContractor.DirContractorName); //4. Телефон: получаем из "docServicePurch.DirWarehouseID" Models.Sklad.Dir.DirWarehouse dirWarehouse = await db.DirWarehouses.FindAsync(docServicePurch.DirWarehouseID); ret = ret.Replace("[[[ТочкаНаименование]]]", dirWarehouse.DirWarehouseName); ret = ret.Replace("[[[ТочкаАдрес]]]", dirWarehouse.DirWarehouseAddress); ret = ret.Replace("[[[ТочкаТелефон]]]", dirWarehouse.Phone); //5. [[[Сумма]]] ret = ret.Replace("[[[Сумма]]]", docServicePurch.Sums.ToString()); //SumsTotal return(ret); }
public async Task <IHttpActionResult> DeleteDirSmsTemplate(int id) { #region Проверяем Логин и Пароль + Изменяем строку соединения + Права + Разные Функции //Получаем Куку System.Web.HttpCookie authCookie = System.Web.HttpContext.Current.Request.Cookies["CookieIPOL"]; // Проверяем Логин и Пароль Classes.Account.Login.Field field = await Task.Run(() => login.Return(authCookie, true)); if (!field.Access) { return(Ok(returnServer.Return(false, Classes.Language.Sklad.Language.msg10))); } //Изменяем строку соединения db = new DbConnectionSklad(connectionString.Return(field.DirCustomersID, null, true)); //Права /*int Status = await Task.Run(() => accessRight.Access(db, field.DirEmployeeID, "DirSmsTemplate")); * if (Status >= 3) return Ok(returnServer.Return(false, Classes.Language.Sklad.Language.msg57(0)));*/ //Права (1 - Write, 2 - Read, 3 - No Access) int iRight = await Task.Run(() => accessRight.Access(connectionString.Return(field.DirCustomersID, null, true), field.DirEmployeeID, "RightDirSmsTemplates")); if (iRight != 1) { return(Ok(returnServer.Return(false, Classes.Language.Sklad.Language.msg57(0)))); } //Разные Функции function.NumberDecimalSeparator(); //Получам настройки Models.Sklad.Sys.SysSetting sysSetting = await db.SysSettings.FindAsync(1); #endregion #region Удаление try { DirSmsTemplate dirSmsTemplate = await db.DirSmsTemplates.FindAsync(id); if (dirSmsTemplate == null) { return(Ok(returnServer.Return(false, Classes.Language.Sklad.Language.msg99))); } db.DirSmsTemplates.Remove(dirSmsTemplate); await db.SaveChangesAsync(); #region 6. JourDisp *** *** *** *** *** *** *** *** *** * Models.Sklad.Sys.SysJourDisp sysJourDisp = new Models.Sklad.Sys.SysJourDisp(); sysJourDisp.DirDispOperationID = 5; //Удаление записи sysJourDisp.DirEmployeeID = field.DirEmployeeID; sysJourDisp.ListObjectID = ListObjectID; sysJourDisp.TableFieldID = id; sysJourDisp.Description = ""; try { sysJourDispsController.mPutPostSysJourDisps(db, sysJourDisp, EntityState.Added); } catch (Exception ex) { } #endregion dynamic collectionWrapper = new { ID = dirSmsTemplate.DirSmsTemplateID, Msg = Classes.Language.Sklad.Language.msg19 }; return(Ok(returnServer.Return(true, collectionWrapper))); //return Ok(returnServer.Return(true, "") } catch (Exception ex) { return(Ok(returnServer.Return(false, exceptionEntry.Return(ex)))); } #endregion }
public async Task <IHttpActionResult> PostDirSmsTemplate(DirSmsTemplate dirSmsTemplate) { #region Проверяем Логин и Пароль + Изменяем строку соединения + Права + Разные Функции //Получаем Куку System.Web.HttpCookie authCookie = System.Web.HttpContext.Current.Request.Cookies["CookieIPOL"]; // Проверяем Логин и Пароль Classes.Account.Login.Field field = await Task.Run(() => login.Return(authCookie, true)); if (!field.Access) { return(Ok(returnServer.Return(false, Classes.Language.Sklad.Language.msg10))); } //Изменяем строку соединения db = new DbConnectionSklad(connectionString.Return(field.DirCustomersID, null, true)); //Права /*int Status = await Task.Run(() => accessRight.Access(db, field.DirEmployeeID, "DirSmsTemplate")); * if (Status >= 3) return Ok(returnServer.Return(false, Classes.Language.Sklad.Language.msg57(0)));*/ //Права (1 - Write, 2 - Read, 3 - No Access) int iRight = await Task.Run(() => accessRight.Access(connectionString.Return(field.DirCustomersID, null, true), field.DirEmployeeID, "RightDirSmsTemplates")); if (iRight != 1) { return(Ok(returnServer.Return(false, Classes.Language.Sklad.Language.msg57(0)))); } //Разные Функции function.NumberDecimalSeparator(); //Получам настройки Models.Sklad.Sys.SysSetting sysSetting = await db.SysSettings.FindAsync(1); #endregion #region Проверки if (!ModelState.IsValid) { return(Ok(returnServer.Return(false, Classes.Language.Sklad.Language.msg91))); //return BadRequest(ModelState); } //Подстановки - некоторые поля надо заполнить, если они не заполены //dirSmsTemplate.Substitute(); #endregion #region Сохранение try { //Используем метод, что бы было всё в одном потоке db.Entry(dirSmsTemplate).State = EntityState.Added; await Task.Run(() => db.SaveChangesAsync()); #region 6. JourDisp *** *** *** *** *** *** *** *** *** * Models.Sklad.Sys.SysJourDisp sysJourDisp = new Models.Sklad.Sys.SysJourDisp(); sysJourDisp.DirDispOperationID = 3; //Добавление записи sysJourDisp.DirEmployeeID = field.DirEmployeeID; sysJourDisp.ListObjectID = ListObjectID; sysJourDisp.TableFieldID = dirSmsTemplate.DirSmsTemplateID; sysJourDisp.Description = ""; try { sysJourDispsController.mPutPostSysJourDisps(db, sysJourDisp, EntityState.Added); } catch (Exception ex) { } #endregion dynamic collectionWrapper = new { ID = dirSmsTemplate.DirSmsTemplateID }; return(Ok(returnServer.Return(true, collectionWrapper))); //return Ok(returnServer.Return(true, "")); } catch (Exception ex) { return(Ok(returnServer.Return(false, exceptionEntry.Return(ex)))); } #endregion }
public async Task <IHttpActionResult> PutSms(int id, DirSmsTemplate dirSmsTemplate, HttpRequestMessage request) { try { #region Проверяем Логин и Пароль + Изменяем строку соединения + Права + Разные Функции //Получаем Куку System.Web.HttpCookie authCookie = System.Web.HttpContext.Current.Request.Cookies["CookieIPOL"]; // Проверяем Логин и Пароль Classes.Account.Login.Field field = await Task.Run(() => login.Return(authCookie, true)); if (!field.Access) { return(Ok(returnServer.Return(false, Classes.Language.Sklad.Language.msg10))); } //Изменяем строку соединения db = new DbConnectionSklad(connectionString.Return(field.DirCustomersID, null, true)); //Права /*int Status = await Task.Run(() => accessRight.Access(db, field.DirEmployeeID, "DirBank")); * if (Status >= 3) return Ok(returnServer.Return(false, Classes.Language.Sklad.Language.msg57(0)));*/ //Права (1 - Write, 2 - Read, 3 - No Access) //int iRight = await Task.Run(() => accessRight.Access(connectionString.Return(field.DirCustomersID, null, true), field.DirEmployeeID, "RightDirBanks")); //if (iRight == 3) return Ok(returnServer.Return(false, Classes.Language.Sklad.Language.msg57(0))); //Разные Функции function.NumberDecimalSeparator(); //Получам настройки Models.Sklad.Sys.SysSetting sysSetting = await db.SysSettings.FindAsync(1); #endregion #region Параметры //paramList -список параметров var paramList = request.GetQueryNameValuePairs(); //Параметры int ListObjectID = Convert.ToInt32(paramList.FirstOrDefault(kv => string.Compare(kv.Key, "ListObjectID", true) == 0).Value); //Записей на страницу #endregion #region Проверки //Активны SMS if (!sysSetting.SmsActive) { return(Ok(returnServer.Return(false, "Активируйте в Настройках (верхнее меню) оповещение по SMS!"))); } string Phone = ""; if (ListObjectID == 40) { //Находим по "DocServicePurchID" номер телефона клиента Models.Sklad.Doc.DocServicePurch docServicePurch = await db.DocServicePurches.FindAsync(id); // DirServiceContractorPhone == "79257711344" //Проверка номера телефона if (docServicePurch.DirServiceContractorPhone == null) { return(Ok(returnServer.Return(false, "Номер телефоана клиента не корректный!"))); } //Убираем + в самом начале docServicePurch.DirServiceContractorPhone = docServicePurch.DirServiceContractorPhone.Replace("+", ""); //Проверка номера телефона if (docServicePurch.DirServiceContractorPhone.Length < 11) { return(Ok(returnServer.Return(false, "Номер телефоана клиента не корректный!"))); } Phone = docServicePurch.DirServiceContractorPhone; } else if (ListObjectID == 33) { //Находим по "DocMovementID" документ Models.Sklad.Doc.DocMovement docMovement = await db.DocMovements.FindAsync(id); // DirServiceContractorPhone == "79257711344" //По документу находим курьера и его номер телефона Models.Sklad.Dir.DirEmployee dirEmployee = await db.DirEmployees.FindAsync(docMovement.DirEmployeeIDCourier); //Проверка номера телефона if (dirEmployee.Phone == null) { return(Ok(returnServer.Return(false, "Номер телефоана клиента не корректный!"))); } //Убираем + в самом начале dirEmployee.Phone = dirEmployee.Phone.Replace("+", ""); //Проверка номера телефона if (dirEmployee.Phone.Length < 11) { return(Ok(returnServer.Return(false, "Номер телефоана клиента не корректный!"))); } Phone = dirEmployee.Phone; } #endregion #region OLD /* * * string res = ""; * * if (sysSetting.SmsServiceID == 1) * { #region sms48_ru * * //Отправка SMS * PartionnyAccount.Classes.SMS.sms48_ru sms48_ru = new Classes.SMS.sms48_ru(); * res = sms48_ru.Send(sysSetting, Phone, dirSmsTemplate.DirSmsTemplateMsg); * * //Результат * if (res == "8") res = "Отправлено"; * else if (res == "1") res = "Доставлено"; * else if (res == "2") res = "Не удалось"; * else res = "Ошибка: " + res; * * //Пишем в Лог * await RecordInLog(ListObjectID, id, "Номер тел.:" + Phone + "Текст SMS: " + dirSmsTemplate.DirSmsTemplateMsg + "<br /> Результат: " + res, field); * #endregion * } * else if (sysSetting.SmsServiceID == 2) * { #region sms4b_ru - не работает * #endregion * } * if (sysSetting.SmsServiceID == 3) * { #region infobip_com * * //Отправка SMS * PartionnyAccount.Classes.SMS.infobip_com infobip_com = new Classes.SMS.infobip_com(); * res = infobip_com.Send(sysSetting, Phone, dirSmsTemplate.DirSmsTemplateMsg); * * //Пишем в Лог * await RecordInLog(ListObjectID, id, "Номер тел.:" + Phone + "Текст SMS: " + dirSmsTemplate.DirSmsTemplateMsg + "<br /> Результат: " + res, field); * #endregion * } */ #endregion int DocID = 0; string res = await SenSms( //res, sysSetting, ListObjectID, id, Phone, dirSmsTemplate.DirSmsTemplateMsg, field, db, id ); #region Меняем в таблице "DocServicePurches" поля: "AlertedCount" и "AlertedDate" PartionnyAccount.Models.Sklad.Doc.DocServicePurch docServicePurch1 = await db.DocServicePurches.FindAsync(id); docServicePurch1.AlertedCount = Convert.ToInt32(docServicePurch1.AlertedCount) + 1; docServicePurch1.AlertedDateTxt = DateTime.Now.ToString("yyyy-MM-dd"); docServicePurch1.AlertedDate = DateTime.Now; db.Entry(docServicePurch1).State = EntityState.Modified; await db.SaveChangesAsync(); #endregion dynamic collectionWrapper = new { Msg = res }; return(Ok(returnServer.Return(true, collectionWrapper))); } catch (Exception ex) { return(Ok(returnServer.Return(false, exceptionEntry.Return(ex)))); } }