private Guid GetContactId(Dictionary <string, object> requestData) { if (requestData != null && requestData.ContainsKey("client") && requestData["client"] != null) { var client = (requestData["client"] as JObject).ToObject <Dictionary <string, string> >(); var mobilePhone = client.ContainsKey("mobilePhone") ? client["mobilePhone"] ?? String.Empty : String.Empty; var cardNumber = client.ContainsKey("cardNumber") ? client["cardNumber"] ?? String.Empty : String.Empty; var id = client.ContainsKey("id") ? client["id"] ?? Guid.Empty.ToString() : Guid.Empty.ToString(); mobilePhone = mobilePhone.Replace("+", String.Empty); var provider = new LoyaltyDBProvider(); var contactId = provider.ExecuteScalar <Guid>(@"Select ""Id"" from public.""Contact"" Where (""Phone"" = '{0}' and '{0}' <> '') or (""Id"" = '{1}' and '{1}' <> '00000000-0000-0000-0000-000000000000') or ('{2}' <> '' and (Select COUNT(*) from public.""Card"" Where ""ContactId"" = ""Contact"".""Id"" and ""Number"" = '{2}') > 0)" , Guid.Empty, mobilePhone, id, cardNumber); return(contactId); } return(Guid.Empty); }
public ActionResult QueryProductSegment(string productId) { var provider = new LoyaltyDBProvider(); var query = @" with ProductPromotion as ( select ps.""Id"" as ""SegmentId"" , ps.""Name"" as ""SegmentName"", p2.""Id"" as ""PromotionId"", p2.""Name"" as ""PromotionName"" from ""ProductInSegment"" pis inner join ""ProductSegment"" ps on ps.""Id"" = pis.""SegmentId"" inner join ""PurchaseBenefit"" pb on pb.""Discount_SegmentId"" = ps.""Id"" or pb.""FixedPrice_SegmentId"" = ps.""Id"" or pb.""ChargeBonus_PercentCharge_ProductSegmentId"" = ps.""Id"" or pb.""AllowBonusPaymentParams_ProductSegmentId"" = ps.""Id"" inner join ""Promotion"" p2 on p2.""Id"" = pb.""PromotionId"" where pis.""ProductId"" = '{0}' union select ps.""Id"" as ""SegmentId"" , ps.""Name"" as ""SegmentName"", p2.""Id"" as ""PromotionId"", p2.""Name"" as ""PromotionName"" from ""ProductInSegment"" pis inner join ""ProductSegment"" ps on ps.""Id"" = pis.""SegmentId"" inner join ""BenefitCondition"" bc on bc.""SegmentId"" = ps.""Id"" inner join ""PurchaseBenefit"" pb on bc.""PurchaseBenefitId"" = pb.""Id"" inner join ""Promotion"" p2 on p2.""Id"" = pb.""PromotionId"" where pis.""ProductId"" = '{0}' ) select distinct ""SegmentId"", ""SegmentName"", ""PromotionId"", ""PromotionName"" from ProductPromotion " ; var items = provider.ExecuteSelectQuery(query, ReadProductSegment, productId); return(Ok(items)); }
public ActionResult LoadPack(IEnumerable <BaseProcessingModel> models) { if (models == null) { return(BadRequest("Ошибка передачи аргументов")); } var result = new List <PackResult>(); foreach (var m in models) { try { var provider = new LoyaltyDBProvider(); provider.ExecuteNonQuery(GetQuery(m)); result.Add(new PackResult() { IsSuccess = true, Id = m.Id }); } catch (Exception e) { result.Add(new PackResult() { IsSuccess = false, ErrorMessage = e.Message, Id = m.Id }); } } return(Ok(result)); }
private Dictionary <string, PromocodeInformation> ReadPromocodesInformation(Newtonsoft.Json.Linq.JArray promocodes) { var promocodesDictionary = new Dictionary <string, PromocodeInformation>(); var provider = new LoyaltyDBProvider(); foreach (string promocode in promocodes) { if (!promocodesDictionary.ContainsKey(promocode)) { promocodesDictionary[promocode] = provider.ExecuteSelectQuery(@"SELECT ""ContactId"", ""IsUsed"", ""PoolId"", ""Id"" FROM public.""PromoCode"" Where ""Code"" = '{0}'", ReadPromocodeInformation, promocode); } } return(promocodesDictionary); }
public ActionResult LoadPrimaryPack(IEnumerable <BaseProcessingModel> models) { if (models == null) { return(BadRequest("Ошибка передачи аргументов")); } try { var provider = new LoyaltyDBProvider(); provider.ExecuteNonQuery(GetPrimaryQuery(models)); return(Ok(models.Select(m => new PackResult() { IsSuccess = true, Id = m.Id }).ToList())); } catch (Exception e) { return(BadRequest(e.Message)); } }
private Int64 GetPromocodeInPurchaseCount(Guid promocodeId) { var provider = new LoyaltyDBProvider(); return(provider.ExecuteScalar <Int64>(@"Select COUNT(*) from public.""PromoCodeInPurchase"" Where ""PromoCodeId"" = '{0}'", 0L, promocodeId.ToString())); }