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