Esempio n. 1
0
        public async Task <ActionResult> ClaimPrizeModal(int prizeId)
        {
            var userId = User.Identity.GetUserId <int>();
            var prize  = await PrizeReader.GetUserPrize(userId, prizeId);

            if (prize.Type != PrizeType.Crypto)
            {
                return(RedirectToAction("ViewUserPrizeModal", new { prizeId = prizeId }));
            }

            var paymentMethod = await PaymentReader.GetMethod(prize.Data);

            return(View(new ClaimPrizeModel
            {
                Id = prize.Id,
                Name = prize.Name,
                Description = prize.Description,
                Game = prize.Game,
                Points = prize.Points,
                Status = prize.Status,
                Type = prize.Type,
                X = prize.X,
                Y = prize.Y,

                Data = prize.Data,
                Data2 = prize.Data2,
                Data3 = prize.Data3,
                Data4 = prize.Data4,

                Rate = paymentMethod.Rate,
                Amount = decimal.Parse(prize.Data2)
            }));
        }
Esempio n. 2
0
        public async Task <ActionResult> Index()
        {
            var paymentMethods = await PaymentReader.GetMethods();

            return(View(new PaymentModel
            {
                Methods = paymentMethods
            }));
        }
Esempio n. 3
0
        public async Task <ActionResult> ClaimPrizeModal(ClaimPrizeModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            var userId = User.Identity.GetUserId <int>();
            var prize  = await PrizeReader.GetUserPrize(userId, model.Id);

            if (prize.Status != PrizeStatus.Unclaimed)
            {
                return(CloseModalSuccess());
            }

            if (model.IsPointsClaim)
            {
                var paymentMethod = await PaymentReader.GetMethod(prize.Data);

                if (paymentMethod == null)
                {
                    return(CloseModalError("Unknown Error"));
                }

                var paymentUserMethod = await PaymentReader.GetUserMethod(userId, paymentMethod.Id);

                if (paymentUserMethod == null)
                {
                    await PaymentWriter.CreateMethod(userId, paymentMethod.Id);
                }

                paymentUserMethod = await PaymentReader.GetUserMethod(userId, paymentMethod.Id);

                if (paymentUserMethod == null)
                {
                    return(CloseModalError("Unknown Error"));
                }

                model.Data3 = paymentUserMethod.Data;
            }

            if (string.IsNullOrEmpty(model.Data3))
            {
                ModelState.AddModelError("", "Invalid Crypto Address");
                return(View(model));
            }

            var result = await PrizeWriter.ClaimPrize(userId, model);

            if (!ModelState.IsWriterResultValid(result))
            {
                return(View(model));
            }

            return(CloseModalSuccess());
        }
Esempio n. 4
0
        public async Task <ActionResult> History()
        {
            var userId   = User.Identity.GetUserId <int>();
            var receipts = await PaymentReader.GetReceipts(userId);

            return(View(new PaymentHistoryModel
            {
                Receipts = receipts
            }));
        }
Esempio n. 5
0
        public async Task <ActionResult> UpdatePaymentModal(int paymentId)
        {
            var payment = await PaymentReader.GetReceipt(paymentId);

            return(View(new UpdatePaymentModel
            {
                Id = payment.Id,
                Name = payment.Name,
                Points = payment.Points,
                Rate = payment.Rate,
                Status = payment.Status,
                Updated = payment.Updated,
                UserName = payment.UserName,
                Amount = payment.Amount,
                Created = payment.Created,
                Data2 = payment.Data2,
            }));
        }
Esempio n. 6
0
        public async Task <ActionResult> MethodModal(int id)
        {
            var userId        = User.Identity.GetUserId <int>();
            var paymentMethod = await PaymentReader.GetUserMethod(userId, id);

            if (paymentMethod != null)
            {
                return(View(paymentMethod));
            }

            var result = await PaymentWriter.CreateMethod(userId, id);

            if (result.Success)
            {
                paymentMethod = await PaymentReader.GetUserMethod(userId, id);

                if (paymentMethod != null)
                {
                    return(View(paymentMethod));
                }
            }

            return(View("ErrorModal"));
        }
Esempio n. 7
0
 public async Task <ActionResult> GetPayments(DataTablesParam model)
 {
     return(DataTable(await PaymentReader.GetReceipts(model)));
 }
Esempio n. 8
0
        private void print_plat(bool isNew = false)
        {
            OpenFileDialog ofd = new OpenFileDialog();

            ofd.InitialDirectory = Directory.GetCurrentDirectory();
            var splitter = '#';//символ разделителей

            //если невыясненные
            if (cbNev.CheckState == CheckState.Checked)
            {
                ofd.Multiselect = true;
                ofd.Filter      = "Файлы .uf* (*.ufd;*.ufo;*.ufe;*.uff;*.uf*)|*.ufd;*.ufo;*.ufe;*.uff;*.uf*| Файлы xml (*.xml) | *.xml";
            }
            else
            {
                ofd.Multiselect = false;
                //21-11-2017 ofd.Filter = "Файлы tff (*.tff)|*.tff|Файлы zfa (*.zf*)|*.zf*|All files (*.*)|*.*";
                ofd.Filter = "Файлы tff (*.tff)|*.tff";
            }

            if (ofd.ShowDialog() == DialogResult.OK)
            {
                //если не невыясненные, по 1 шт
                if (ofd.FileNames.Length == 1 && cbNev.CheckState == CheckState.Unchecked)
                {
                    ///////////////////////////////// ПЛАТЕЖКИ tff и НЕВЫЯСНЕННЫЕ zfa >
                    string[] plat     = null;
                    var      exp      = string.Empty; //расширение файла
                    var      plat_str = string.Empty;
                    //var na4alo_dannih = 0; // с какой строки в ХМЛ-е начнутся норм данные-начинаем с этой строки читать файл


                    if (ofd.FilterIndex == 1)
                    { //если ТФФ
                        exp = ".tff";
                        //na4alo_dannih = 2;
                    }
                    else
                    { //если ЗФА
                        exp = ".zf*";
                        //na4alo_dannih = 3;
                    }



                    //получаем перечень платежек из файла OLD
                    plat = PaymentReader.GetPaymentLine(ofd.FileName);

                    try
                    {
                        //читаем шаблон XSD
                        string xsd_path = $"{Directory.GetCurrentDirectory()}\\docs\\formulars.xsd";

                        //читаем файл с платежками
                        string fileContent = PaymentReader.ReadPayment(ofd.FileName);

                        // по старому или новому процессу
                        if (isNew)
                        {
                            PAUMENTS = new XmlSchemaReader().getPaymentFKValues(fileContent, xsd_path, "http://www.roskazna.ru/eb/domain/Inf_Pay_Doc/formular");
                        }
                        else
                        {
                            PaymentFKValues paym = new PaymentFKValues(fileContent); //передаем строки из платежки - и парсим
                            PAUMENTS = paym.getPAUMENTS();
                            if (paym.err.Count > 0)
                            {
                                var errs = paym.err.Aggregate((i, j) => i + "\r\n\r\n" + j);
                                MessageBox.Show($"{errs}. Данные записи не будут обработаны. Исправьте исходный файл.", "Error UFK", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                            }
                        }

                        if (cbNev.CheckState == CheckState.Unchecked)
                        {
                            PaymentExcelWriter.SaveXls(ofd.FileName, PAUMENTS);
                        }
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show($"Error: {ex.Message};\r\n\r\nTrace: {ex.StackTrace}", "Error UFK", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }

                    ///////////////////////////////// < ПЛАТЕЖКИ tff и НЕВЫЯСНЕННЫЕ zfa
                }    //if openfiledial
                else //!!если НЕВЫЯСНЕННЫЕ или >= 1 файла выделили
                if (ofd.FileNames.Length >= 1 && ofd.FileNames.Length <= 520)
                {
                    if (ofd.FilterIndex == 2)//если выбираем zfa
                    {
                        //MessageBox.Show(ofd.FileNames.Length + " ФАЙЛОВ");
                        string[,] inXml = new string[ofd.FileNames.Length, 16];//почему 16 ?

                        //перебираем все файцы
                        for (int val = 0; val < ofd.FileNames.Length; val++)
                        {
                            string[] tmp = ParceXml.ParcesXml(ofd.FileNames[val].ToString());

                            for (int row = 0; row <= 15; row++)//перебираем все значения одномерного массива - данные 1 файла, вносим в двумернй массив
                            {
                                inXml[val, row] = tmp[row];
                            }

                            PaymentExcelWriter.SavePosleViyasnXls(ofd.FileNames[0].ToString().Trim().ToLower().Replace(".xml", ".xls"), inXml);
                        }
                    }
                    else//если выбираем UFD
                    if (ofd.FilterIndex == 1 /*|| ofd.FilterIndex==3*/)   //если выбираем UFD или ZFA!!!
                    {
                        string[][][] inXmlm = new string[ofd.FileNames.Length][][];//почему 16 ?

                        //перебираем все файцы
                        for (int val = 0; val < ofd.FileNames.Length; val++)
                        {
                            inXmlm[val]    = new string[5][];
                            inXmlm[val][0] = new string[1];                                       //имя файла
                            inXmlm[val][1] = new string[1];                                       //содержимое файла

                            inXmlm[val][2] = new string[1];                                       //строка UF| с данными платежки - кому кто за что - без дат и сумм
                            inXmlm[val][3] = new string[1];                                       //платежки в файле - строки UFPP|
                            inXmlm[val][4] = new string[1];                                       //коменты к платежкам в файле - строки UFPP_N|

                            inXmlm[val][0][0] = ofd.FileNames[val].ToString();                    //имя файла в 0;
                            inXmlm[val][1]    = PaymentReader.GetPaymentLine(ofd.FileNames[val]); //читаем содержимое файла в 1
                        }

                        string char_plat_na4alo = string.Empty; //начало строки для платежки
                        string char_comm_na4alo = string.Empty; //начало строки для комментариев к платежке
                        string char_posp_na4alo = string.Empty; //начало строки для подписей к платежке

                        if (ofd.FilterIndex == 1)
                        {
                            char_plat_na4alo = "UF|";
                            char_comm_na4alo = "UFPP|";
                            char_posp_na4alo = "UFPP_N|";
                        }

                        string[][][] UFD = new string[inXmlm.Length][][];           //???????????????

                        for (int val = 0; val < ofd.FileNames.Length; val++)        //перебираем файлы
                        {
                            for (int i = 0; i < inXmlm[val][1].Length; i++)         //перебираем содержимое файла по строкам
                            {
                                if (inXmlm[val][1][i].StartsWith(char_plat_na4alo)) //если строка начинается с...
                                {
                                    inXmlm[val][2][0] = inXmlm[val][1][i];          //сохраняем строку с данными платежки - кому кто за что - без дат и сумм
                                }
                            }
                            inXmlm[val][3] = StringHelper.GetPaymentCount(inXmlm[val][1], char_comm_na4alo); // платежек в файле
                            inXmlm[val][4] = StringHelper.GetPaymentCount(inXmlm[val][1], char_posp_na4alo); // подписей к платежкам в файоле

                            if (inXmlm[val][3].Length == inXmlm[val][4].Length)                              //определяем размер платежек в фале соотв размеру доп описания к ним?! UFPP==UFPP_N ???
                            {
                                UFD[val] = new string[inXmlm[val][3].Length][];                              //[]-кол-во файлов []-кол-во платежек в файле

                                if (inXmlm[val][2][0] != null)
                                {
                                    //upd 20-11-2017 string[] tmp_uf = ParceSymb2Str(inXmlm[val][2][0], '#');//строка UF| - 1 строка, много значений
                                    string[] tmp_uf = inXmlm[val][2][0].Split(splitter);  //строка UF| - 1 строка, много значений

                                    for (int xxx = 0; xxx < inXmlm[val][3].Length; xxx++) //перебираем строки с платежками
                                    {
                                        //upd 20-11-2017 sstring[] tmp_ufpp = ParceSymb2Str(inXmlm[val][3][xxx], '#');//строка UFPP| - много строк, много значений
                                        string[] tmp_ufpp = inXmlm[val][3][xxx].Split(splitter);                      //строка UFPP| - много строк, много значений

                                        //upd 20-11-2017 sstring[] tmp_ufpp_n = ParceSymb2Str(inXmlm[val][4][xxx], '#');//строка UFPP_N| - много строк, много значений
                                        string[] tmp_ufpp_n = inXmlm[val][4][xxx].Split(splitter);                      //строка UFPP_N| - много строк, много значений


                                        if (ofd.FileNames[0].ToString().Trim().ToLower().Contains(".ufo"))
                                        {
                                            UFD[val][xxx] = new[] { tmp_ufpp[4], tmp_ufpp[5], tmp_ufpp[13], tmp_uf[18 - 1], tmp_uf[19 - 1],
                                                                    tmp_ufpp[7], tmp_ufpp[8], tmp_ufpp_n[6], "", tmp_ufpp[5], tmp_ufpp[5],
                                                                    "", tmp_uf[17 - 1], "", "", "", "", tmp_uf[6], "", "", "", "", "",
                                                                    "", tmp_uf[20 - 1], "", "", "", "", "", "", "", tmp_uf[1], tmp_uf[2], "", tmp_uf[0], "" };
                                        }
                                        else if (ofd.FileNames[0].ToString().Trim().ToLower().Contains(".ufd") ||
                                                 ofd.FileNames[0].ToString().Trim().ToLower().Contains(".ufe") ||
                                                 ofd.FileNames[0].ToString().Trim().ToLower().Contains(".uff") ||
                                                 ofd.FileNames[0].ToString().Trim().ToLower().Contains(".uf")  // !!! для все .UF*
                                                                                                               // || ofd.FileNames[0].ToString().Trim().ToLower().Contains(".zfa")
                                                 )
                                        {
                                            UFD[val][xxx] = new[] { tmp_ufpp[4], tmp_ufpp[5], tmp_ufpp[13], tmp_uf[18], tmp_uf[19],
                                                                    tmp_ufpp[7], tmp_ufpp[8], tmp_ufpp_n[6], "", tmp_ufpp[5], tmp_ufpp[5],
                                                                    "", tmp_uf[17], "", "", "", "", tmp_uf[6], "", "", "", "", "",
                                                                    "", tmp_uf[20], "", "", "", "", "", "", "", tmp_uf[1], tmp_uf[2], "", tmp_uf[0], "" };
                                        }
                                    } //for
                                }     //if
                                else
                                {
                                    MessageBox.Show("1-Пустая строка");
                                }
                            }
                            else
                            {
                                UFD[val] = null;
                                File.Move(inXmlm[val][0][0], inXmlm[val][0][0].Replace(".", "_____.")); //переименование неверного файла
                            }
                        } //for перебираем файлы

                        PaymentExcelWriter.SavePosleViyasnXls(ofd.FileNames[0].ToString().Trim().ToLower().Substring(0, ofd.FileNames[0].ToString().Trim().Length - 3) + "xls", UFD);
                    }//if
                }
                else
                {
                    MessageBox.Show("Ошибочка. Возможно, отменили \r\nили выделили больше 520 файлов!\r\n" + ofd.FileNames.Length + " ФАЙЛОВ", "!!!", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }
        }