Ejemplo n.º 1
0
        public bool Authorization()
        {
            VkApi vkAcc = new VkApi();

            try
            {
                DataBaseCenter dataBase  = DataBaseCenter.Create();
                DataTable      dataTable = dataBase.GetDataTable("SELECT значение FROM Настройки WHERE название='vk'");
                if (dataTable.Rows.Count == 0)
                {
                    return(false);
                }
                string[] str = dataTable.Rows[0].ItemArray[0].ToString().Split("|".ToCharArray());
                ulong.TryParse(str[0], out appId);
                login = str[1];
                pass  = str[2];
                vkAcc.Authorize(new ApiAuthParams
                {
                    ApplicationId = appId,
                    Login         = login,
                    Password      = pass,
                    AccessToken   = str[3],
                    Settings      = Settings.All
                });
            }
            catch
            {
                return(false);
            }

            vkMessages = new VkMessages(vkAcc);
            vkBot      = new VkBot(vkAcc, vkMessages);
            return(true);
        }
Ejemplo n.º 2
0
        public WinFormQiwiSetting()
        {
            InitializeComponent();
            DataTable dataTable = dataBase.GetDataTable("SELECT значение FROM Настройки WHERE название='qiwi'");

            string[] str = dataTable.Rows[0].ItemArray[0].ToString().Split("|".ToCharArray());
            textBox1.Text = str[0];
            textBox2.Text = str[1];
        }
Ejemplo n.º 3
0
        private LongPollHistoryResponse GetLongPoolHistory()
        {
            if (!Ts.HasValue)
            {
                GetLongPoolServer(null);
            }
            MessagesGetLongPollHistoryParams rp = new MessagesGetLongPollHistoryParams();

            rp.Ts  = Ts.Value;
            rp.Pts = Pts;

            int c = 0;
            LongPollHistoryResponse history = null;
            string errorLog = "";

            while (c < 5 && history == null)
            {
                c++;
                try
                {
                    history = vkAcc.Messages.GetLongPollHistory(rp);
                }
                catch (TooManyRequestsException)
                {
                    Thread.Sleep(150);
                    c--;
                }
                catch (Exception ex)
                {
                    DataBaseCenter        dataBase  = DataBaseCenter.Create();
                    System.Data.DataTable dataTable = dataBase.GetDataTable("SELECT значение FROM Настройки WHERE название='vk'");
                    string[] str = dataTable.Rows[0].ItemArray[0].ToString().Split("|".ToCharArray());
                    ulong    appId;
                    ulong.TryParse(str[0], out appId);
                    vkAcc.Authorize(new ApiAuthParams
                    {
                        ApplicationId = appId,
                        Login         = str[1],
                        Password      = str[2],
                        AccessToken   = str[3],
                        Settings      = Settings.All
                    });
                    try { GetLongPoolServer(null); } catch { };
                }
            }

            if (history != null)
            {
                Pts = history.NewPts;
                foreach (var m in history.Messages)
                {
                    m.FromId = m.Type == VkNet.Enums.MessageType.Sended ? vkAcc.UserId : m.UserId;
                }
            }

            return(history);
        }
Ejemplo n.º 4
0
        public QiwiWatcher()
        {
            DataBaseCenter dataBase  = DataBaseCenter.Create();
            DataTable      dataTable = dataBase.GetDataTable("SELECT значение FROM Настройки WHERE название='qiwi'");

            string[] str = dataTable.Rows[0].ItemArray[0].ToString().Split("|".ToCharArray());
            phone = str[0];
            token = str[1];
        }
Ejemplo n.º 5
0
        private async void watchAsync(object state)
        {
            try
            {
                var qiwiHistory = await GetQiwiHistoryyAsync();

                if (qiwiHistory != null && qiwiHistory.history.Count > 0)
                {
                    foreach (Datum pay in qiwiHistory.history)
                    {
                        string client = pay.comment;
                        if (client.IndexOf("ЛС") >= 0 && pay.type.ToLower() == "in")
                        {
                            client = client.Remove(0, client.IndexOf("ЛС") + 2);
                            if (client.IndexOf(" ") >= 0)
                            {
                                client = client.Remove(client.IndexOf(" "));
                            }

                            dataBase.RunCommand(string.Format(
                                                    "INSERT INTO ИсторияТранзакций (клиент, операция, сумма, номерТранзакции) VALUES('{0}', 'приход', '{1}', '{2}')",
                                                    client,
                                                    pay.sum.amount,
                                                    pay.trmTxnId));
                        }
                    }
                }
            }
            catch
            {
                DataTable dataTable = dataBase.GetDataTable("SELECT дата FROM ИсторияТранзакций WHERE номерТранзакции is not null and операция='приход' ORDER BY дата DESC LIMIT 1");
                if (dataTable.Rows.Count > 0)
                {
                    DateTime dateTime = DateTime.ParseExact(dataTable.Rows[0].ItemArray[0].ToString(), "yyyy-MM-dd HH:mm:ss", null);
                    try { var qiwiHistory = await GetQiwiHistoryyAsync(dateTime); } catch { };
                }
            }
        }
Ejemplo n.º 6
0
        private void WinFormSettings_Load(object sender, EventArgs e)
        {
            try
            {
                FileStream stream    = new FileStream("Настройки\\Камеры.cfg", FileMode.Open);
                byte[]     byte_buff = new byte[(int)stream.Length];
                stream.Read(byte_buff, 0, (int)stream.Length);
                string str_buff = Encoding.Default.GetString(byte_buff);
                cameras = JsonConvert.DeserializeObject <List <Camera> >(str_buff);
                stream.Close();
            }
            catch { }

            for (int i = 0; i < cameras.Count; i++)
            {
                listBox1.Items.Add(cameras[i].camName + " // " + cameras[i].url);
                listBox2.Items.Add(cameras[i].camName + " // " + cameras[i].url);
            }

            if (cameras.Count != 0)
            {
                listBox1.SelectedIndex = 0;
                listBox2.SelectedIndex = 0;
            }

            DataBaseCenter dataBase = DataBaseCenter.Create();

            if (!dataBase.CheckRigth(user, Rights.настройки))
            {
                button5.Enabled = false;
                return;
            }

            DataTable dataTable = dataBase.GetDataTable("SELECT значение FROM Настройки WHERE название='vk'");

            if (dataTable.Rows.Count != 0)
            {
                string[] str = dataTable.Rows[0].ItemArray[0].ToString().Split("|".ToCharArray());
                Array.Resize(ref str, 4);
                textBox10.Text = str[0];
                textBox9.Text  = str[1];
                textBox11.Text = str[2];
                textBox12.Text = str[3];
            }
        }
Ejemplo n.º 7
0
        public string CreateReportTransit(long idvk, string leftDate, string rightDate)
        {
            DataBaseCenter dataBase  = DataBaseCenter.Create();
            DataTable      dataTable = dataBase.GetDataTable(string.Format(
                                                                 @"Select concat(Парковки.название, ' ', Парковки.адрес),
concat(въехалДата, ' - ', выехалДата), госНомер, ИсторияПроездов.стоимость   
From ИсторияПроездов 
	JOIN Авто ON Авто.id=ИсторияПроездов.авто
	JOIN Клиенты ON Клиенты.id=Авто.клиент
    JOIN КонтактыКлиентов ON КонтактыКлиентов.клиент=Клиенты.id 
    JOIN Парковки ON Парковки.id=ИсторияПроездов.парковка
WHERE
	КонтактыКлиентов.контакт='{0}' and (ИсторияПроездов.въехалДата between '{1}' and '{2}' or ИсторияПроездов.выехалДата between '{1}' and '{2}')
ORDER BY ИсторияПроездов.въехалДата DESC", idvk, leftDate, rightDate));

            DataRow[] data_arr = dataTable.Select();
            dataTable = dataBase.GetDataTable(string.Format(@"Select ФИО, серияНомер_ВУ
From Клиенты
    JOIN КонтактыКлиентов ON КонтактыКлиентов.клиент=Клиенты.id    
WHERE
	КонтактыКлиентов.контакт='{0}'
LIMIT 1", idvk));
            if (dataTable.Rows.Count == 0)
            {
                throw new Exception();
            }

            string path     = string.Format("report {0} {1}.docx", idvk, DateTime.Now.ToString("yyyy-MM-dd HH-mm"));
            DocX   document = DocX.Create(path);

            document.InsertParagraph(string.Format("История парковки за период '{0}' - '{1}'", leftDate, rightDate)).Font(new FontFamily("Times New Roman")).FontSize(16).Bold().Alignment = Alignment.center;
            document.InsertParagraph(string.Format("Для {0}, вод. удост. {1}", dataTable.Rows[0].ItemArray[0].ToString(), dataTable.Rows[0].ItemArray[1].ToString())).Font(new FontFamily("Times New Roman")).FontSize(16).Bold().Alignment = Alignment.center;
            document.InsertParagraph();
            Table table = document.AddTable(1, 4);

            for (int i = 0; i < 4; i++)
            {
                table.Rows[0].Cells[i].RemoveParagraphAt(0);
                table.Rows[0].Cells[i].VerticalAlignment = VerticalAlignment.Center;
            }

            table.Alignment = Alignment.center;
            table.Rows[0].Cells[0].Width = 250;
            table.Rows[0].Cells[1].Width = 250;
            table.Rows[0].Cells[2].Width = 100;
            table.Rows[0].Cells[3].Width = 50;
            table.Rows[0].Cells[0].InsertParagraph("Парковка").Font(new FontFamily("Times New Roman")).FontSize(14).Bold().Alignment   = Alignment.center;
            table.Rows[0].Cells[1].InsertParagraph("Дата").Font(new FontFamily("Times New Roman")).FontSize(14).Bold().Alignment       = Alignment.center;
            table.Rows[0].Cells[2].InsertParagraph("Гос. номер").Font(new FontFamily("Times New Roman")).FontSize(14).Bold().Alignment = Alignment.center;
            table.Rows[0].Cells[3].InsertParagraph("Стоимость").Font(new FontFamily("Times New Roman")).FontSize(14).Bold().Alignment  = Alignment.center;
            for (int i = 0; i < data_arr.Length; i++)
            {
                table.InsertRow();
                for (int j = 0; j < 4; j++)
                {
                    table.Rows[i + 1].Cells[j].RemoveParagraphAt(0);
                    table.Rows[i + 1].Cells[j].InsertParagraph(data_arr[i].ItemArray[j].ToString()).Font(new FontFamily("Times New Roman")).FontSize(14).Alignment = Alignment.left;
                    table.Rows[i + 1].Cells[j].VerticalAlignment = VerticalAlignment.Center;
                }
            }

            document.InsertTable(table);
            document.Save();
            return(path);
        }
Ejemplo n.º 8
0
        public string CreateReportTransaction(long idvk, string leftDate, string rightDate)
        {
            DataBaseCenter dataBase  = DataBaseCenter.Create();
            DataTable      dataTable = dataBase.GetDataTable(string.Format(
                                                                 @"Select ИсторияТранзакций.операция, 
ИсторияТранзакций.сумма, ИсторияТранзакций.дата, 
concat(въехалДата, ' - ', выехалДата, ' - авто: ',госНомер)   
From ИсторияТранзакций 
	JOIN Клиенты ON Клиенты.id=ИсторияТранзакций.клиент 
    JOIN КонтактыКлиентов ON КонтактыКлиентов.клиент=Клиенты.id    
    LEFT JOIN ИсторияПроездов ON ИсторияПроездов.id=ИсторияТранзакций.стоянка 
    LEFT JOIN Авто ON Авто.id=ИсторияПроездов.авто 
WHERE 
	КонтактыКлиентов.контакт='{0}' and ИсторияТранзакций.дата between '{1}' and '{2}' 
ORDER BY ИсторияТранзакций.дата DESC", idvk, leftDate, rightDate));

            DataRow[] data_arr = dataTable.Select();
            dataTable = dataBase.GetDataTable(string.Format(@"Select ФИО, серияНомер_ВУ
From Клиенты
    JOIN КонтактыКлиентов ON КонтактыКлиентов.клиент=Клиенты.id    
WHERE
	КонтактыКлиентов.контакт='{0}'
LIMIT 1", idvk));
            if (dataTable.Rows.Count == 0)
            {
                throw new Exception();
            }

            string path     = string.Format("report {0} {1}.docx", idvk, DateTime.Now.ToString("yyyy-MM-dd HH-mm"));
            DocX   document = DocX.Create(path);

            document.InsertParagraph(string.Format("История операций по счету за период '{0}' - '{1}'", leftDate, rightDate)).Font(new FontFamily("Times New Roman")).FontSize(16).Bold().Alignment = Alignment.center;
            document.InsertParagraph(string.Format("Для {0}, вод. удост. {1}", dataTable.Rows[0].ItemArray[0].ToString(), dataTable.Rows[0].ItemArray[1].ToString())).Font(new FontFamily("Times New Roman")).FontSize(16).Bold().Alignment = Alignment.center;
            document.InsertParagraph();
            Table table = document.AddTable(1, 4);

            for (int i = 0; i < 4; i++)
            {
                table.Rows[0].Cells[i].RemoveParagraphAt(0);
                table.Rows[0].Cells[i].VerticalAlignment = VerticalAlignment.Center;
            }

            table.Alignment = Alignment.center;
            table.Rows[0].Cells[0].Width = 100;
            table.Rows[0].Cells[1].Width = 50;
            table.Rows[0].Cells[2].Width = 100;
            table.Rows[0].Cells[3].Width = 400;
            table.Rows[0].Cells[0].InsertParagraph("Операция").Font(new FontFamily("Times New Roman")).FontSize(14).Bold().Alignment = Alignment.center;
            table.Rows[0].Cells[1].InsertParagraph("Сумма").Font(new FontFamily("Times New Roman")).FontSize(14).Bold().Alignment    = Alignment.center;
            table.Rows[0].Cells[2].InsertParagraph("Дата").Font(new FontFamily("Times New Roman")).FontSize(14).Bold().Alignment     = Alignment.center;
            table.Rows[0].Cells[3].InsertParagraph("Стоянка").Font(new FontFamily("Times New Roman")).FontSize(14).Bold().Alignment  = Alignment.center;
            for (int i = 0; i < data_arr.Length; i++)
            {
                table.InsertRow();
                for (int j = 0; j < 4; j++)
                {
                    table.Rows[i + 1].Cells[j].RemoveParagraphAt(0);
                    table.Rows[i + 1].Cells[j].InsertParagraph(data_arr[i].ItemArray[j].ToString()).Font(new FontFamily("Times New Roman")).FontSize(14).Alignment = Alignment.left;
                    table.Rows[i + 1].Cells[j].VerticalAlignment = VerticalAlignment.Center;
                }
            }

            document.InsertTable(table);
            document.Save();
            return(path);
        }
Ejemplo n.º 9
0
        private void MessagesRecievedDelegate(VkApi owner, ReadOnlyCollection <Message> messages)
        {
            foreach (Message msg in messages)
            {
                if (msg.FromId != vkAcc.UserId)
                {
                    string[] cmd = msg.Body.ToLower().Split(Convert.ToChar(" "));
                    switch (cmd[0])
                    {
                    case "инфо":
                    {
                        DataBaseCenter dataBase = DataBaseCenter.Create();
                        try
                        {
                            string str = dataBase.StatusAvto(msg.FromId.Value);
                            vkMessages.SendMsg(msg.FromId.Value, str);
                        }
                        catch
                        {
                            vkMessages.SendMsg(msg.FromId.Value, "Необходимо зарегистрировать ваш ID в системе, обратитесь к оператору!");
                        }

                        break;
                    }

                    case "парковка":
                    {
                        DataBaseCenter dataBase = DataBaseCenter.Create();
                        string         str      = dataBase.BusyParking();
                        vkMessages.SendMsg(msg.FromId.Value, str);
                        break;
                    }

                    case "счет":
                    {
                        DataBaseCenter        dataBase = DataBaseCenter.Create();
                        System.Data.DataTable dt       = dataBase.GetDataTable(
                            string.Format(
                                "Select Клиенты.id, балансСчета FROM Клиенты JOIN КонтактыКлиентов ON КонтактыКлиентов.клиент=Клиенты.id WHERE КонтактыКлиентов.контакт='{0}'",
                                msg.FromId.Value));
                        if (dt.Rows.Count > 0)
                        {
                            vkMessages.SendMsg(
                                msg.FromId.Value,
                                string.Format(
                                    @"Номер вашего счета: ЛС{0}
Баланс вашего счета: {1}",
                                    dt.Rows[0].ItemArray[0].ToString(),
                                    dt.Rows[0].ItemArray[1].ToString()));
                        }
                        else
                        {
                            vkMessages.SendMsg(msg.FromId.Value, "Необходимо зарегистрировать ваш ID в системе, обратитесь к оператору!");
                        }

                        break;
                    }

                    case "отчет":
                    {
                        try
                        {
                            switch (cmd[1])
                            {
                            case "платежи":
                            {
                                Report report = new Report();
                                string path   = report.CreateReportTransaction(msg.FromId.Value, cmd[2], cmd[3]);
                                vkMessages.SendMsg(msg.FromId.Value, "Отчет готов", path);
                                System.IO.File.Delete(path);
                                break;
                            }

                            case "парковка":
                            {
                                Report report = new Report();
                                string path   = report.CreateReportTransit(msg.FromId.Value, cmd[2], cmd[3]);
                                vkMessages.SendMsg(msg.FromId.Value, "Отчет готов", path);
                                System.IO.File.Delete(path);
                                break;
                            }

                            default:
                            {
                                ErrMsg(msg.FromId.Value, msg.Id.Value);
                                break;
                            }
                            }
                        }
                        catch
                        {
                            vkMessages.SendMsg(msg.FromId.Value, "Необходимо зарегистрировать ваш ID в системе, обратитесь к оператору!");
                        }

                        break;
                    }

                    default:
                    {
                        ErrMsg(msg.FromId.Value, msg.Id.Value);
                        break;
                    }
                    }
                }
            }
        }