Пример #1
0
        private string GetSecretKey(Client client)
        {
            string secretKey = CreateSecretKey();
            try
            {
                using (SMSContext context = new SMSContext())
                {
                    while (context.IncomeSMS.Where(x => x.Client.ClientId == client.ClientId && x.SecretKey == secretKey).Count() > 0)
                    {
                        secretKey = CreateSecretKey();
                    }
                }
            }
            catch (Exception e)
            {
                logger.Error("Ошибка чтения из базы данных.Не удалось проверить секретный ключ на уникальность.", e);
            }

            return secretKey;
        }
Пример #2
0
        private ServicePhone GetPhoneByClient(Client client, SMSContext context)
        {
            ServicePhone queryResult;
            try
            {
                queryResult = context.ClientPhone.FirstOrDefault(x => x.ClientId == client.ClientId && !x.ServicePhone.IsDeleted).ServicePhone;

            }
            catch (Exception e)
            {
                logger.Error("Ошибка чтения из базы данных. Не удалось получить сервисный телефон по клиенту.\r\nТекст ошибки:", e);
                queryResult = null;
            }
            return queryResult;
        }
Пример #3
0
 private IncomeSMS SaveIncomeSMS(Client client, string text, string senderNumber, string recipienNumber, DateTime date, string ShortKey, SMSContext context)
 {
     try
     {
         IncomeSMS incomeSMS = new IncomeSMS()
         {
             SenderNumber = senderNumber,
             RecipientNumber = recipienNumber,
             Client = client,
             Text = text,
             DateTime = date,
             SecretKey = GetSecretKey(client),
             Status = IncomeSMS.IncomeSMSStatus.Received,
             Category = "new",
             IsReaded = false,
             IsAnswered = false,
             SMSIsSend = false,
             ShortKey = ShortKey,
             MessageType = IncomeSMS.Type.SMS
         };
         context.IncomeSMS.Add(incomeSMS);
         context.SaveChanges();
         return incomeSMS;
     }
     catch (Exception e)
     {
         logger.Error("Ошибка записи  в базу данных. Не удалось добавить  входящее сообщения.\r\nТекст ошибки:", e);
         return null;
     }
 }
Пример #4
0
        private bool ClientIsNotBlocked(Client client)
        {
            try
            {
                using (SMSContext context = new SMSContext())
                {
                    List<ClientPhone> phones = context.ClientPhone.Where(x => x.ClientId == client.ClientId && x.ServicePhoneId == 1).ToList();
                    List<IncomeSMS> messages = context.IncomeSMS.Where(y => y.Client.ClientId == client.ClientId).ToList();

                    return client.IsBlocked != true && !(phones != null && messages.Count > 10);

                }
            }
            catch (Exception e)
            {
                logger.Error("Ошибка чтения из базы данных.Не удалось проверить доступ клиента.\r\nТекст ошибки:+" + geExceptionsMessage(e) ?? "" + "\r\n" + e.StackTrace);
                return true;
            }
        }
Пример #5
0
        private IncomeClientSMS SaveIncomeClientSMS(ShortMessage message, ServicePhone ServicePhone, IncomeSMS incomeSMS, Client client, SMSContext context)
        {
            try
            {

                IncomeClientSMS incomeClientSMS = new IncomeClientSMS()
                {
                    Client = client,
                    ClientId = client.ClientId,
                    DateTime = message.SentDate,
                    Text = message.Text,
                    SenderNumber = client.PhoneNumber,
                    RecipientNumber = ServicePhone.PhoneNumber,
                    Status = IncomeClientSMS.IncomeClientSMSStatus.Received,
                    SecretKey = incomeSMS.SecretKey,
                    MessageId = incomeSMS.MessageId
                };

                context.IncomeClientSMS.Add(incomeClientSMS);
                context.SaveChanges();

                return incomeClientSMS;
            }
            catch (Exception e)
            {
                logger.Error("Ошибка записи  в базу данных. Не удалось добавить сообщение клиента с ответом.\r\nТекст ошибки:", e);
                return null;
            }
        }