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; }
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; }
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; } }
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; } }
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; } }