Exemplo n.º 1
0
        public string GetBonuses(JQueryDataTableParamModel param)
        {
            BonusesNotForPurchasesResponse response = new BonusesNotForPurchasesResponse();

            try
            {
                BonusesNotForPurchasesRequest request = new BonusesNotForPurchasesRequest
                {
                    Operator  = Implementation.JwtProps.GetOperator(),
                    Date      = Request["columns[1][search][value]"],
                    DateStart = Request["date_from"],
                    DateEnd   = Request["date_to"],
                    Phone     = Request["columns[3][search][value]"],
                    Page      = Convert.ToInt64(param.start),
                    PageSize  = Convert.ToInt64(param.length)
                };

                if (!string.IsNullOrEmpty(Request["columns[2][search][value]"]))
                {
                    request.Name = Request["columns[2][search][value]"];
                }
                if (!string.IsNullOrEmpty(Request["columns[5][search][value]"]))
                {
                    var values = Request["columns[5][search][value]"].Split('-');
                    try { request.AddedMore = values[0]; } catch { };
                    try { request.AddedLess = values[1]; } catch { };
                }
                if (!string.IsNullOrEmpty(Request["columns[6][search][value]"]))
                {
                    var values = Request["columns[6][search][value]"].Split('-');
                    try { request.RedeemedMore = values[0]; } catch { };
                    try { request.RedeemedLess = values[1]; } catch { };
                }
                if (!string.IsNullOrEmpty(Request["columns[7][search][value]"]))
                {
                    var values = Request["columns[7][search][value]"].Split('-');
                    try { request.BurnMore = values[0]; } catch { };
                    try { request.BurnLess = values[1]; } catch { };
                }
                try { request.Page++; } catch { }
                HttpResponseMessage responseMessage = HttpClientService.PostAsync("api/client/BonusesNotForPurchases", request).Result;
                if (responseMessage.IsSuccessStatusCode)
                {
                    try { response = responseMessage.Content.ReadAsAsync <BonusesNotForPurchasesResponse>().Result; } catch { }
                    if (response.ErrorCode == 0)
                    {
                        Bonuses bonuses = new Bonuses();
                        foreach (Bonus c in response.Bonuses)
                        {
                            BonusesViewModel bonus = new BonusesViewModel
                            {
                                date = "<p>" + c.BonusDate.ToString("dd.MM.yyyy") + "</p> <p>" +
                                       c.BonusDate.ToString("HH:mm") + "</p>",
                                type     = c.BonusSource,
                                added    = c.BonusAdded.ToString(CultureInfo.InvariantCulture),
                                redeemed = c.BonusRedeemed.ToString(CultureInfo.InvariantCulture),
                                fireed   = c.BonusBurn.ToString(CultureInfo.InvariantCulture),
                                card     = c.BonusCard.ToString(CultureInfo.CurrentCulture),
                                phone    = c.Phone,
                                reason   = "Механика ПЛ",
                                lorem    = ""
                            };
                            bonuses.data.Add(bonus);
                        }
                        bonuses.draw            = param.draw;
                        bonuses.recordsTotal    = response.RecordTotal;
                        bonuses.recordsFiltered = response.RecordFilterd;
                        var data = JsonConvert.SerializeObject(bonuses);
                        return(data);
                    }
                    return(responseMessage.ReasonPhrase);
                }
                response.ErrorCode = 10;
                response.Message   = "Ошибка получения данных";
            }
            catch (Exception ex)
            {
                response.ErrorCode = 2;
                response.Message   = ex.Message;
            }
            return(JsonConvert.SerializeObject(response));
        }
Exemplo n.º 2
0
        public BonusesNotForPurchasesResponse GetBonusesNotForPurchases(BonusesNotForPurchasesRequest request)
        {
            BonusesNotForPurchasesResponse response = new BonusesNotForPurchasesResponse();

            try
            {
                var bonuses = new List <Bonus>();
                _cnn.Open();
                var cmd = _cnn.CreateCommand();
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.CommandText = "CardBonusesTypePaging";

                if (request.Operator > 0)
                {
                    cmd.Parameters.AddWithValue("@operator", request.Operator);
                }
                if (request.Partner > 0)
                {
                    cmd.Parameters.AddWithValue("@partner", request.Partner);
                }
                if (request.Pos > 0)
                {
                    cmd.Parameters.AddWithValue("@pos", request.Pos);
                }
                if (request.Card > 0)
                {
                    cmd.Parameters.AddWithValue("@card", request.Card);
                }
                if (!string.IsNullOrEmpty(request.CardStr))
                {
                    cmd.Parameters.AddWithValue("@f_card", request.CardStr);
                }
                if (request.Page == 0)
                {
                    request.Page++;
                }

                cmd.Parameters.AddWithValue("@start", request.Page);

                //Если start = -1 и length = -1 это значит выгрузить все без пагинации
                if (request.Page != -1)
                {
                    cmd.Parameters.AddWithValue("@length", request.Page + request.PageSize);
                }
                else
                {
                    cmd.Parameters.AddWithValue("@length", request.PageSize);
                }

                cmd.Parameters.Add("@errormessage", SqlDbType.NVarChar, 100);
                cmd.Parameters["@errormessage"].Direction = ParameterDirection.Output;
                cmd.Parameters.Add("@result", SqlDbType.Int);
                cmd.Parameters["@result"].Direction = ParameterDirection.ReturnValue;
                cmd.Parameters.Add("@total_rows", SqlDbType.Int);
                cmd.Parameters["@total_rows"].Direction = ParameterDirection.Output;

                //Фильтр по дате
                if (!string.IsNullOrEmpty(request.Date))
                {
                    if (DateTime.TryParseExact(request.Date, new[] { "dd.MM.yyyy" }, CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None, out var date))
                    {
                        cmd.Parameters.AddWithValue("@f_date", date);
                    }
                }

                //Фильтр по дате (Верхний фильтр с диапазоном)
                if (!string.IsNullOrEmpty(request.DateStart))
                {
                    if (DateTime.TryParseExact(request.DateStart, new[] { "dd.MM.yyyy" }, CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None, out var date))
                    {
                        cmd.Parameters.AddWithValue("@f_date_start", date.ToString("yyyy-MM-dd"));
                    }
                }

                //Фильтр по дате (Верхний фильтр с диапазоном)
                if (!string.IsNullOrEmpty(request.DateEnd))
                {
                    if (DateTime.TryParseExact(request.DateEnd, new[] { "dd.MM.yyyy" }, CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None, out var date))
                    {
                        cmd.Parameters.AddWithValue("@f_date_end", date.ToString("yyyy-MM-dd"));
                    }
                }

                //Фильтр по названию
                if (!string.IsNullOrEmpty(request.Name))
                {
                    cmd.Parameters.AddWithValue("@f_name", request.Name);
                }
                //Фильтр по телефону
                if (!string.IsNullOrEmpty(request.Phone))
                {
                    cmd.Parameters.AddWithValue("@f_phone", request.Phone);
                }
                //Фильтр по начислению
                try { if (!string.IsNullOrEmpty(request.AddedMore))
                      {
                          cmd.Parameters.AddWithValue("@f_added_more", Convert.ToInt32(request.AddedMore));
                      }
                } catch { }
                try { if (!string.IsNullOrEmpty(request.AddedLess))
                      {
                          cmd.Parameters.AddWithValue("@f_added_less", Convert.ToInt32(request.AddedLess));
                      }
                } catch { }
                //Фильтр по списанию
                try { if (!string.IsNullOrEmpty(request.RedeemedMore))
                      {
                          cmd.Parameters.AddWithValue("@f_redeemed_more", Convert.ToInt32(request.RedeemedMore));
                      }
                } catch { }
                try { if (!string.IsNullOrEmpty(request.RedeemedLess))
                      {
                          cmd.Parameters.AddWithValue("@f_redeemed_less", Convert.ToInt32(request.RedeemedLess));
                      }
                } catch { }
                //Фильтр по сгорело
                try { if (!string.IsNullOrEmpty(request.BurnMore))
                      {
                          cmd.Parameters.AddWithValue("@f_burn_more", Convert.ToInt32(request.BurnMore));
                      }
                } catch { }
                try { if (!string.IsNullOrEmpty(request.BurnLess))
                      {
                          cmd.Parameters.AddWithValue("@f_burn_less", Convert.ToInt32(request.BurnLess));
                      }
                } catch { }

                SqlDataReader readerBonuses = cmd.ExecuteReader();
                while (readerBonuses.Read())
                {
                    Bonus bonus = new Bonus();
                    try
                    {
                        if (!readerBonuses.IsDBNull(0))
                        {
                            bonus.BonusSource = readerBonuses.GetString(0);
                        }
                        if (!readerBonuses.IsDBNull(1))
                        {
                            bonus.BonusDate = readerBonuses.GetDateTime(1);
                        }
                        if (!readerBonuses.IsDBNull(2))
                        {
                            bonus.BonusAdded = readerBonuses.GetDecimal(2);
                        }
                        if (!readerBonuses.IsDBNull(3))
                        {
                            bonus.BonusRedeemed = readerBonuses.GetDecimal(3);
                        }
                        if (!readerBonuses.IsDBNull(4))
                        {
                            bonus.BonusBurn = readerBonuses.GetDecimal(4);
                        }
                        if (!readerBonuses.IsDBNull(5))
                        {
                            bonus.BonusCard = readerBonuses.GetInt64(5);
                        }
                        if (!readerBonuses.IsDBNull(6))
                        {
                            bonus.Phone = readerBonuses.GetInt64(6).ToString();
                        }
                    }
                    catch (Exception ex)
                    {
                        Log.Error(ex, "ServerOperatorClientsManager getting bonus burn {0}", request.Card);
                    }
                    bonuses.Add(bonus);
                }
                readerBonuses.Close();
                response.ErrorCode     = Convert.ToInt32(cmd.Parameters["@result"].Value);
                response.Message       = Convert.ToString(cmd.Parameters["@errormessage"].Value);
                response.RecordTotal   = Convert.ToInt32(cmd.Parameters["@total_rows"].Value);
                response.RecordFilterd = response.RecordTotal;

                response.Bonuses = bonuses;
            }
            catch (Exception e)
            {
                response.ErrorCode = 10;
                response.Message   = e.Message;
            }
            finally
            {
                _cnn.Close();
            }
            return(response);
        }