using MySql.Data.MySqlClient;
using System.Collections.Generic;
using System.Data.Entity.Infrastructure;
using System.Web.Caching;
using System.Web.UI.WebControls;
using System.Xml.Serialization;
public Dictionary<string, string> errorListEptt
get { return EPTT.errorListEptt; }
public class AsWebClient : WebClient
protected override WebRequest GetWebRequest(Uri uri)
WebRequest w = base.GetWebRequest(uri);
public static string fiyattipadi(string Type, int Tip)
case 0: Adi = "Fiyat Tipi Bulunamadı"; break;
case 1: Adi = "Fiyat 1"; break;
case 2: Adi = "Fiyat 2"; break;
case 3: Adi = "Fiyat 3"; break;
case 4: Adi = "Fiyat 4"; break;
case 5: Adi = Type + " Satış Fiyatı"; break;
case 6: Adi = Type + " Alış Fiyatı"; break;
case 7: Adi = "Fiyat 5"; break;
case 8: Adi = "Fiyat 6"; break;
case 9: Adi = "Fiyat 7"; break;
case 10: Adi = "Fiyat 8"; break;
case 11: Adi = "Fiyat 9"; break;
case 12: Adi = "Fiyat 10"; break;
public Dictionary<string, string> errorListGG
get { return GG.errorListGG; }
public Dictionary<string, string> errorListN11
public Dictionary<string, string> errorListTrendYol
return TrendYol.errorListTrendYol;
static bool apiStatus = true;
HEPSIBURADA hepsiBurada = null;
TrendYol trendYol = null;
public SanalPazar(HttpContext context = null)
if (context != null) HttpContext.Current = context;
pl = new PanelDilIslem();
helper = new SanalPazarYardim();
hepsiBurada = new HEPSIBURADA();
trendYol = new TrendYol();
HttpRuntime.Cache.Add("sanalpazar_islem", JsonConvert.SerializeObject(new AKINSOFT.SDK.SanalPazarYardim.LogMsg()), null, DateTime.Now.AddMinutes(30), Cache.NoSlidingExpiration, CacheItemPriority.Normal, null);
#region Product Indirim,Ekleme Çalıştır
public void indirimKarUygula(UrunYeni product, string SANALPAZARSETTIGNS, ref decimal _price, ref decimal _discount)
var setting = helper.getSettings(SANALPAZARSETTIGNS);
var discountApply = setting.ContainsKey("DISCOUNT") && setting["DISCOUNT"].ToLower() == "true" ? true : false;
var taxApply = setting.ContainsKey("TAX") && setting["TAX"].ToLower() == "true" ? true : false;
switch (setting["PRICETYPE"])
case "1": _price = Eklenti2.DecimalParser(product.Fiyat1); break;
case "2": _price = Eklenti2.DecimalParser(product.Fiyat2); break;
case "3": _price = Eklenti2.DecimalParser(product.Fiyat3); break;
case "4": _price = Eklenti2.DecimalParser(product.Fiyat4); break;
case "7": _price = Eklenti2.DecimalParser(product.Fiyat5); break;
case "8": _price = Eklenti2.DecimalParser(product.Fiyat6); break;
case "9": _price = Eklenti2.DecimalParser(product.Fiyat7); break;
case "10": _price = Eklenti2.DecimalParser(product.Fiyat8); break;
case "11": _price = Eklenti2.DecimalParser(product.Fiyat9); break;
case "12": _price = Eklenti2.DecimalParser(product.Fiyat10); break;
switch (SANALPAZARSETTIGNS)
case "N11": _price = Eklenti2.DecimalParser(product.Fiyat_N11); break;
case "GITTIGIDIYOR": _price = Eklenti2.DecimalParser(product.Fiyat_Gittigidiyor); break;
case "EPTTAVM": _price = Eklenti2.DecimalParser(product.Fiyat_Eptt); break;
case "N11PRO": _price = Eklenti2.DecimalParser(product.N11Pro_Fiyat); break;
case "AMAZON": _price = Eklenti2.DecimalParser(product.AmazonFiyat); break;
case "HEPSIBURADA": _price = Eklenti2.DecimalParser(product.Fiyat_Hepsiburada); break;
default: _price = 0; break;
case "6": _price = Eklenti2.DecimalParser(product.AlisFiyati); break;
default: _price = 0; break;
if (product.Fiyat1Uzanti != a.AYAR_VarsayilanFiyatUzanti)
List<dovizkurlari> dovizler = Eklenti2.DovizKurGetir();
dovizkurlari doviz = dovizler.FirstOrDefault(x => x.Simge == product.Fiyat1Uzanti);
double dovizCarpan = Eklenti2.doubleParser(a.AYAR_DovizAlisSatis == "Alış" ? doviz.Alis : doviz.Satis);
_price = _price * (decimal)dovizCarpan;
string _mainProcess = setting.ContainsKey("PRICEPROCESS") ? setting["PRICEPROCESS"].ToLower() : "none",
_mainRate = setting.ContainsKey("RATEAMOUNT") ? setting["RATEAMOUNT"].ToLower() : "",
_categoryProcess = "none",
decimal _mainVal = setting.ContainsKey("PRICERATE") ? Eklenti2.DecimalParser(setting["PRICERATE"]) : 0,
_mainExtraVal = setting.ContainsKey("EXTRAPRICE") ? Eklenti2.DecimalParser(setting["EXTRAPRICE"]) : 0,
var categoryPriceRateList = helper.GetProductCategories();
if (discountApply && Eklenti2.DecimalParser(product.Indirim) > 0)
_discount = Eklenti2.DecimalParser(product.Indirim);
#region Kategoriden alinan veri
if (categoryPriceRateList != null)
string[] _f = product.Kategori.Split('|');
var productCategory = _f.First().Split(',').Last();
var categoryPriceRate = categoryPriceRateList.FirstOrDefault(x => x.Kodu == productCategory);
if (categoryPriceRate != null)
var rateObj = JsonConvert.DeserializeObject<Dictionary<string, SanalPazarObj.ExtraParameter>>(categoryPriceRate.SanalPazarKarOrani);
if (rateObj != null && rateObj.ContainsKey(SANALPAZARSETTIGNS) && !String.IsNullOrEmpty(rateObj[SANALPAZARSETTIGNS].value))
_categoryVal = Eklenti2.DecimalParser(rateObj[SANALPAZARSETTIGNS].value);
_categoryProcess = Eklenti2.stringParser(rateObj[SANALPAZARSETTIGNS].key);
_categoryExtraVal = Eklenti2.DecimalParser(rateObj[SANALPAZARSETTIGNS].extra);
_categoryRate = Eklenti2.stringParser(rateObj[SANALPAZARSETTIGNS].option);
if (_categoryVal > 0 && !String.IsNullOrEmpty(_categoryProcess))
if (_categoryProcess == "true")
if (_categoryRate == "true")
_price = _price + ((_price / 100) * Eklenti2.DecimalParser(_categoryVal)) + (_categoryExtraVal > 0 ? _categoryExtraVal : 0);
_price = _price + Eklenti2.DecimalParser(_categoryVal) + (_categoryExtraVal > 0 ? _categoryExtraVal : 0);
else if (_categoryProcess == "false")
if (_categoryRate == "true")
_price = _price + (_categoryExtraVal > 0 ? _categoryExtraVal : 0);
_discount = _categoryVal;
_price = _price - _categoryVal + (_categoryExtraVal > 0 ? _categoryExtraVal : 0);
#region Genel ayardan alinan veri
else if (_mainVal > 0 && !String.IsNullOrEmpty(_mainProcess))
if (_mainProcess == "true")
_price = _price + ((_price / 100) * Eklenti2.DecimalParser(_mainVal)) + (_mainExtraVal > 0 ? _mainExtraVal : 0);
_price = _price + Eklenti2.DecimalParser(_mainVal) + (_mainExtraVal > 0 ? _mainExtraVal : 0);
else if (_mainProcess == "false")
_price = _price + (_mainExtraVal > 0 ? _mainExtraVal : 0);
_price = _price - _mainVal + (_mainExtraVal > 0 ? _mainExtraVal : 0);
if (taxApply && (kdv == false || SANALPAZARSETTIGNS == ""))
_price = _price + ((_price / 100) * Eklenti2.DecimalParser(product.Kdv));
public static string ClearStartSTR(string target, string trimString)
if (string.IsNullOrEmpty(trimString)) return target;
while (result.StartsWith(trimString))
result = result.Substring(trimString.Length);
public bool insertStockAllVMs(List<string> extra)
if (!Eklenti2.boolParser(Eklenti2.GelistiriciAyar("SANALPAZARSIPSTKGUNCPASIF")))
var Hepsiburada = helper.getSettings("HEPSIBURADA");
bool _HB = (Hepsiburada != null && Hepsiburada.ContainsKey("ACTIVE") && Hepsiburada["ACTIVE"] == "true");
var N11 = helper.getSettings("N11");
bool _N11 = (N11 != null && N11.ContainsKey("ACTIVE") && N11["ACTIVE"] == "true");
var Gittigidiyor = helper.getSettings("GITTIGIDIYOR");
bool _GG = (Gittigidiyor != null && Gittigidiyor.ContainsKey("ACTIVE") && Gittigidiyor["ACTIVE"] == "true");
var EPttAvm = helper.getSettings("EPTTAVM");
bool _EPTT = (EPttAvm != null && EPttAvm.ContainsKey("ACTIVE") && EPttAvm["ACTIVE"] == "true");
var Trendyol = helper.getSettings("TRENDYOL");
bool _TRND = (Trendyol != null && Trendyol.ContainsKey("ACTIVE") && Trendyol["ACTIVE"] == "true");
var Amazon = helper.getSettings("AMAZON");
bool _AMZN = (Amazon != null && Amazon.ContainsKey("ACTIVE") && Amazon["ACTIVE"] == "true");
var N11Pro = helper.getSettings("N11PRO");
bool _N11PRO = (N11Pro != null && N11Pro.ContainsKey("ACTIVE") && N11Pro["ACTIVE"] == "true");
List<string> extra_ = new List<string>();
var hbExtras = new List<string>();
var CSE = helper.getSettings("CICEKSEPETI");
bool _CSE = (CSE != null && CSE.ContainsKey("ACTIVE") && CSE["ACTIVE"] == "true");
var MDS = helper.getSettings("MODANISA");
bool _MDS = (CSE != null && CSE.ContainsKey("ACTIVE") && CSE["ACTIVE"] == "true");
if (extra != null && extra.Count > 0)
var pr = helper.Product(b);
if (!String.IsNullOrEmpty(pr.AnaStok) && pr.AnaStok != "0")
hbExtras = new List<string>(extra_);
var allVariant = helper.GetAllProductVariants(hbExtras);
hbExtras.AddRange(allVariant.Select(v => v.StokKod));
cse.createProduct(helper.IsRecipe(extra_));
trendYol.createProduct(helper.IsRecipe(extra_));
hepsiBurada.HBUrun_kayit(helper.IsRecipe(hbExtras));
gittiGidiyor.Gittigidiyor_Kayit(helper.IsRecipe(extra_));
n11.N11_Kayit(helper.IsRecipe(extra_));
eptt.EPttAVM_Kayit(helper.IsRecipe(extra_));
amazon.StokGuncelleV2(helper.IsRecipe(extra_));
n11Pro.N11ProPostProduct(helper.IsRecipe(extra_));
mds.saveProducts(helper.IsRecipe(extra_));
Eklenti2.DebugLog("updateStockAllVMs, " + ex.Message);
public bool updateStockAllVMs(List<string> extra, bool fromWebEnt = false)
List<string> extra_ = new List<string>();
if (!Eklenti2.boolParser(Eklenti2.GelistiriciAyar("SANALPAZARSIPSTKGUNCPASIF")))
var Hepsiburada = helper.getSettings("HEPSIBURADA");
bool _HB = (Hepsiburada != null && Hepsiburada.ContainsKey("ACTIVE") && Hepsiburada["ACTIVE"] == "true" && !String.IsNullOrEmpty(Hepsiburada.First().Value) && (!Hepsiburada.ContainsKey("AUTOUPDATE") || (Hepsiburada.ContainsKey("AUTOUPDATE") && Hepsiburada["AUTOUPDATE"].ToLower() == "false")));
var N11 = helper.getSettings("N11");
bool _N11 = (N11 != null && N11.ContainsKey("ACTIVE") && N11["ACTIVE"] == "true" && !String.IsNullOrEmpty(N11.First().Value) && (!N11.ContainsKey("AUTOUPDATE") || (N11.ContainsKey("AUTOUPDATE") && N11["AUTOUPDATE"].ToLower() == "false")));
var Gittigidiyor = helper.getSettings("GITTIGIDIYOR");
bool _GG = (Gittigidiyor != null && Gittigidiyor.ContainsKey("ACTIVE") && Gittigidiyor["ACTIVE"] == "true" && !String.IsNullOrEmpty(Gittigidiyor.First().Value) && (!Gittigidiyor.ContainsKey("AUTOUPDATE") || (Gittigidiyor.ContainsKey("AUTOUPDATE") && Gittigidiyor["AUTOUPDATE"].ToLower() == "false")));
var EPttAvm = helper.getSettings("EPTTAVM");
bool _EPTT = (EPttAvm != null && EPttAvm.ContainsKey("ACTIVE") && EPttAvm["ACTIVE"] == "true" && !String.IsNullOrEmpty(EPttAvm.First().Value) && (!EPttAvm.ContainsKey("AUTOUPDATE") || (EPttAvm.ContainsKey("AUTOUPDATE") && EPttAvm["AUTOUPDATE"].ToLower() == "false")));
var Trendyol = helper.getSettings("TRENDYOL");
bool _TRND = (Trendyol != null && Trendyol.ContainsKey("ACTIVE") && Trendyol["ACTIVE"] == "true" && !String.IsNullOrEmpty(Trendyol.First().Value) && (!Trendyol.ContainsKey("AUTOUPDATE") || (Trendyol.ContainsKey("AUTOUPDATE") && Trendyol["AUTOUPDATE"].ToLower() == "false")));
var Amazon = helper.getSettings("AMAZON");
bool _AMZN = (Amazon != null && Amazon.ContainsKey("ACTIVE") && Amazon["ACTIVE"] == "true" && !String.IsNullOrEmpty(Amazon.First().Value) && (!Amazon.ContainsKey("AUTOUPDATE") || (Amazon.ContainsKey("AUTOUPDATE") && Amazon["AUTOUPDATE"].ToLower() == "false")));
var N11Pro = helper.getSettings("N11PRO");
bool _N11PRO = (N11Pro != null && N11Pro.ContainsKey("ACTIVE") && N11Pro["ACTIVE"] == "true" && !String.IsNullOrEmpty(N11Pro.First().Value) && (!N11Pro.ContainsKey("AUTOUPDATE") || (N11Pro.ContainsKey("AUTOUPDATE") && N11Pro["AUTOUPDATE"].ToLower() == "false")));
var hbExtras = new List<string>();
var CSE = helper.getSettings("CICEKSEPETI");
bool _CSE = (CSE != null && CSE.ContainsKey("ACTIVE") && CSE["ACTIVE"] == "true" && (!CSE.ContainsKey("AUTOUPDATE") || (CSE.ContainsKey("AUTOUPDATE") && CSE["AUTOUPDATE"].ToLower() == "false")));
var MDS = helper.getSettings("MODANISA");
bool _MDS = (CSE != null && CSE.ContainsKey("ACTIVE") && CSE["ACTIVE"] == "true" && (!CSE.ContainsKey("AUTOUPDATE") || (CSE.ContainsKey("AUTOUPDATE") && CSE["AUTOUPDATE"].ToLower() == "false")));
var FLO = helper.getSettings("FLO");
bool _FLO = (FLO != null && FLO.ContainsKey("ACTIVE") && FLO["ACTIVE"] == "true" && (!FLO.ContainsKey("AUTOUPDATE") || (FLO.ContainsKey("AUTOUPDATE") && FLO["AUTOUPDATE"].ToLower() == "false")));
if (extra != null && extra.Count > 0)
var pr = helper.Product(b);
if (!String.IsNullOrEmpty(pr.AnaStok) && pr.AnaStok != "0")
hbExtras = new List<string>(extra_);
var allVariant = helper.GetAllProductVariants(hbExtras);
hbExtras.AddRange(allVariant.Select(v => v.StokKod));
cse.CicekSepeti_UpdateStockPrice(helper.IsRecipe(extra_), closeProduct: fromWebEnt);
trendYol.Trendyol_UpdateStockPrice(helper.IsRecipe(extra_), closeProduct: fromWebEnt);
hepsiBurada.Hepsiburada_Guncelle(helper.IsRecipe(hbExtras), closeProduct: fromWebEnt);
gittiGidiyor.StokGuncelleV2(helper.IsRecipe(extra_), closeProduct: fromWebEnt);
n11.N11UpdatePrice(helper.IsRecipe(extra_), closeProduct: fromWebEnt);
n11.N11UpdateStock(helper.IsRecipe(extra_));
eptt.StokGuncelleV2(helper.IsRecipe(extra_), closeProduct: fromWebEnt);
amazon.StokGuncelleV2(helper.IsRecipe(extra_), closeProduct: fromWebEnt);
n11Pro.StokGuncelleV2(helper.IsRecipe(extra_), closeProduct: fromWebEnt);
mds.updateProductStock(helper.IsRecipe(extra_), closeProduct: fromWebEnt);
flo.UpdateStockPrice(helper.IsRecipe(extra_), closeProduct: fromWebEnt);
SanalPazarLog.LogAdd(Section.SANALAUTO.ToString(), string.Format("{0} otomatik stok güncelleme işlemi yapıldı.", DateTime.Now.ToString()), obj: string.Join(" , ",helper.IsRecipe(extra_)), function: "updateStockAllVMs");
Eklenti2.DebugLog("updateStockAllVMs, " + ex.Message);
public static bool isLocal()
string directoryName = "";
var kok = System.Web.Hosting.HostingEnvironment.MapPath("~").Split('\\');
directoryName = kok[kok.Length - 1];
if (String.IsNullOrEmpty(directoryName) && kok.Length > 1)
directoryName = kok[kok.Length - 2];
return directoryName.Equals("Web");
Eklenti2.DebugLog(ex.Message);
public void TaskProcess()
var baslangic = DateTime.Now;
var Hepsiburada = helper.getSettings("HEPSIBURADA");
if (Hepsiburada != null && Hepsiburada.ContainsKey("ACTIVE") && Hepsiburada["ACTIVE"] == "true" && !String.IsNullOrEmpty(Hepsiburada.First().Value) && (!Hepsiburada.ContainsKey("AUTOUPDATE") || (Hepsiburada.ContainsKey("AUTOUPDATE") && Hepsiburada["AUTOUPDATE"].ToLower() == "false")))
Eklenti2.DebugLog("SanalMagaza HEPSIBURADA OTO Sipariş başladı");
hepsiBurada.Hepsiburada_Siparis();
var N11 = helper.getSettings("N11");
if (N11 != null && N11.ContainsKey("ACTIVE") && N11["ACTIVE"] == "true" && !String.IsNullOrEmpty(N11.First().Value) && (!N11.ContainsKey("AUTOUPDATE") || (N11.ContainsKey("AUTOUPDATE") && N11["AUTOUPDATE"].ToLower() == "false")))
Eklenti2.DebugLog("SanalMagaza N11 OTO Sipariş başladı");
var Gittigidiyor = helper.getSettings("GITTIGIDIYOR");
if (Gittigidiyor != null && Gittigidiyor.ContainsKey("ACTIVE") && Gittigidiyor["ACTIVE"] == "true" && !String.IsNullOrEmpty(Gittigidiyor.First().Value) && (!Gittigidiyor.ContainsKey("AUTOUPDATE") || (Gittigidiyor.ContainsKey("AUTOUPDATE") && Gittigidiyor["AUTOUPDATE"].ToLower() == "false")))
Eklenti2.DebugLog("SanalMagaza GG OTO Sipariş başladı");
gittiGidiyor.Gittigidiyor_Siparis();
var EPttAvm = helper.getSettings("EPTTAVM");
if (EPttAvm != null && EPttAvm.ContainsKey("ACTIVE") && EPttAvm["ACTIVE"] == "true" && !String.IsNullOrEmpty(EPttAvm.First().Value) && (!EPttAvm.ContainsKey("AUTOUPDATE") || (EPttAvm.ContainsKey("AUTOUPDATE") && EPttAvm["AUTOUPDATE"].ToLower() == "false")))
Eklenti2.DebugLog("SanalMagaza EPTTAVM OTO Sipariş başladı");
var Trendyol = helper.getSettings("TRENDYOL");
if (Trendyol != null && Trendyol.ContainsKey("ACTIVE") && Trendyol["ACTIVE"] == "true" && !String.IsNullOrEmpty(Trendyol.First().Value) && (!Trendyol.ContainsKey("AUTOUPDATE") || (Trendyol.ContainsKey("AUTOUPDATE") && Trendyol["AUTOUPDATE"].ToLower() == "false")))
Eklenti2.DebugLog("SanalMagaza TRENDYOL OTO Sipariş başladı");
trendYol.OrderFilterChange();
var Amazon = helper.getSettings("AMAZON");
if (Amazon != null && Amazon.ContainsKey("ACTIVE") && Amazon["ACTIVE"] == "true" && !String.IsNullOrEmpty(Amazon.First().Value) && (!Amazon.ContainsKey("AUTOUPDATE") || (Amazon.ContainsKey("AUTOUPDATE") && Amazon["AUTOUPDATE"].ToLower() == "false")))
Eklenti2.DebugLog("SanalMagaza AMAZON OTO Sipariş başladı");
var CSE = helper.getSettings("CICEKSEPETI");
if (CSE != null && CSE.ContainsKey("ACTIVE") && CSE["ACTIVE"] == "true" && (!CSE.ContainsKey("AUTOUPDATE") || (CSE.ContainsKey("AUTOUPDATE") && CSE["AUTOUPDATE"].ToLower() == "false")))
Eklenti2.DebugLog("SanalMagaza ÇiçekSepeti OTO Sipariş başladı");
cse.CICEKSEPETI_Siparis();
var AKC = helper.getSettings("AKAKCE");
if (AKC != null && AKC.ContainsKey("ACTIVE") && AKC["ACTIVE"] == "true" && (!AKC.ContainsKey("AUTOUPDATE") || (AKC.ContainsKey("AUTOUPDATE") && AKC["AUTOUPDATE"].ToLower() == "false")))
Eklenti2.DebugLog("SanalMagaza Akakçe OTO Sipariş başladı");
var MDS = helper.getSettings("MODANISA");
if (MDS != null && MDS.ContainsKey("ACTIVE") && MDS["ACTIVE"] == "true" && (!MDS.ContainsKey("AUTOUPDATE") || (MDS.ContainsKey("AUTOUPDATE") && MDS["AUTOUPDATE"].ToLower() == "false")))
Eklenti2.DebugLog("SanalMagaza Modanisa OTO Sipariş başladı");
MySql.Data.MySqlClient.MySqlConnection.ClearAllPools();
SanalPazarLog.LogAdd("SanalAuto", string.Format("{0} - {1} arasında otomatik siparişler çekildi", baslangic.ToString(), DateTime.Now.ToString()), function: "TaskProcess");
public void StokGuncelle(List<string> extra = null, int WaitTimer = -1, bool single = false)
if (extra != null && extra.Count > 0)
var N11 = helper.getSettings("N11");
if (N11 != null && N11.ContainsKey("ACTIVE") && N11["ACTIVE"] == "true")
Eklenti2.DebugLog("N11 Kayıt başlıyor : " + String.Join(";", extra));
foreach (string item in extra)
Eklenti2.DebugLog("N11 Kayıta gönderildi : " + item);
n11.N11_Kayit(new List<string>() { item }, singleSend: true);
{ helper.AsLog("N11_StokYenile Hata:", ex); }
var Hepsiburada = helper.getSettings("HEPSIBURADA");
if (Hepsiburada != null && Hepsiburada.ContainsKey("ACTIVE") && Hepsiburada["ACTIVE"] == "true")
hepsiBurada.Hepsiburada_Guncelle(extra);
{ helper.AsLog("HepsiBurada_StokYenile Hata:", ex); }
var Gittigidiyor = helper.getSettings("GITTIGIDIYOR");
if (Gittigidiyor != null && Gittigidiyor.ContainsKey("ACTIVE") && Gittigidiyor["ACTIVE"] == "true")
foreach (string item in extra)
Eklenti2.DebugLog("GG Kayıta gönderildi : " + item);
gittiGidiyor.Gittigidiyor_Kayit(new List<string>() { item }, singleSend: true);
gittiGidiyor.Gittigidiyor_Kayit(extra);
{ helper.AsLog("Gittigidiyor_StokYenile Hata:", ex); }
var EPttAvm = helper.getSettings("EPTTAVM");
if (EPttAvm != null && EPttAvm.ContainsKey("ACTIVE") && EPttAvm["ACTIVE"] == "true")
eptt.EPttAVM_Kayit(extra);
{ helper.AsLog("EpttAvm_StokYenile Hata:", ex); }
var Trendyol = helper.getSettings("TRENDYOL");
if (Trendyol != null && Trendyol.ContainsKey("ACTIVE") && Trendyol["ACTIVE"] == "true")
trendYol.StokGuncelleV2(extra);
{ helper.AsLog("Trendyol_StokYenile Hata:", ex); }
var Amazon = helper.getSettings("AMAZON");
if (Amazon != null && Amazon.ContainsKey("ACTIVE") && Amazon["ACTIVE"] == "true")
amazon.PostInventory(extra);
{ helper.AsLog("Amazon_StokYenile Hata:", ex); }
var CSE = helper.getSettings("CICEKSEPETI");
if (CSE != null && CSE.ContainsKey("ACTIVE") && CSE["ACTIVE"] == "true")
bool autoUpdatePrice = (CSE.ContainsKey("AUTOUPDATEPRICE") && CSE["AUTOUPDATEPRICE"] == "true") ? false : true;
cse.CicekSepeti_UpdateStockPrice(extra, autoUpdatePrice: autoUpdatePrice);
var MDS = helper.getSettings("MODANISA");
if (MDS != null && MDS.ContainsKey("ACTIVE") && MDS["ACTIVE"] == "true")
mds.updateProductStock(extra);
public static void NewErrorLog(string vmType, List<string> errorList)
if (HttpContext.Current == null)
HttpContext.Current = Eklenti2.FakeHttpContext();
DirectoryInfo Dir = new DirectoryInfo(HttpContext.Current.Server.MapPath("/Temp/VIRTUALMARKETLOGS"));
Directory.CreateDirectory(HttpContext.Current.Server.MapPath("/Temp/VIRTUALMARKETLOGS"));
File.SetAttributes(HttpContext.Current.Server.MapPath("/Temp/VIRTUALMARKETLOGS"), FileAttributes.Normal);
var vmDir = new DirectoryInfo(HttpContext.Current.Server.MapPath("/Temp/VIRTUALMARKETLOGS/" + vmType));
var vmNowDayDir = new DirectoryInfo(HttpContext.Current.Server.MapPath(String.Format("/Temp/VIRTUALMARKETLOGS/{1}/{0}", DateTime.Now.ToString("yyyyMMdd"), vmType)));
Directory.CreateDirectory(HttpContext.Current.Server.MapPath("/Temp/VIRTUALMARKETLOGS/" + vmType));
File.SetAttributes(HttpContext.Current.Server.MapPath("/Temp/VIRTUALMARKETLOGS/" + vmType), FileAttributes.Normal);
Directory.CreateDirectory(HttpContext.Current.Server.MapPath(String.Format("/Temp/VIRTUALMARKETLOGS/{1}/{0}", DateTime.Now.ToString("yyyyMMdd"), vmType)));
File.SetAttributes(HttpContext.Current.Server.MapPath(String.Format("/Temp/VIRTUALMARKETLOGS/{1}/{0}", DateTime.Now.ToString("yyyyMMdd"), vmType)), FileAttributes.Normal);
StringBuilder sb = new StringBuilder();
foreach (var item in errorList)
sb.Append(item + "\r\n");
var txtFilePath = vmNowDayDir + "\\" + DateTime.Now.ToString("HHmmss") + ".txt";
if (!File.Exists(txtFilePath))
using (var tw = new StreamWriter(txtFilePath, true))
tw.WriteLine(sb.ToString());
public static int muhasebeKodunuBelirle(short siparisDurumu)
public void StokGuncelleV2(List<string> extra = null)
if (extra != null && extra.Count > 0)
var N11 = helper.getSettings("N11");
if (N11 != null && N11.ContainsKey("ACTIVE") && N11["ACTIVE"] == "true")
n11.N11UpdateStock(extra);
n11.N11UpdatePrice(extra);
{ helper.AsLog("N11_StokYenile Hata:", ex); }
var Hepsiburada = helper.getSettings("HEPSIBURADA");
if (Hepsiburada != null && Hepsiburada.ContainsKey("ACTIVE") && Hepsiburada["ACTIVE"] == "true")
hepsiBurada.Hepsiburada_Guncelle(extra);
{ helper.AsLog("HepsiBurada_StokYenile Hata:", ex); }
var Gittigidiyor = helper.getSettings("GITTIGIDIYOR");
if (Gittigidiyor != null && Gittigidiyor.ContainsKey("ACTIVE") && Gittigidiyor["ACTIVE"] == "true")
gittiGidiyor.Gittigidiyor_UpdateStock(extra);
gittiGidiyor.Gittigidiyor_UpdatePrice(extra);
{ helper.AsLog("Gittigidiyor_StokYenile Hata:", ex); }
var EPttAvm = helper.getSettings("EPTTAVM");
if (EPttAvm != null && EPttAvm.ContainsKey("ACTIVE") && EPttAvm["ACTIVE"] == "true")
eptt.EpttAVM_UpdateStockPrice(extra);
{ helper.AsLog("EpttAvm_StokYenile Hata:", ex); }
var Trendyol = helper.getSettings("TRENDYOL");
if (Trendyol != null && Trendyol.ContainsKey("ACTIVE") && Trendyol["ACTIVE"] == "true")
trendYol.Trendyol_UpdateStockPrice(extra);
{ helper.AsLog("Trendyol_StokYenile Hata:", ex); }
var Amazon = helper.getSettings("AMAZON");
if (Amazon != null && Amazon.ContainsKey("ACTIVE") && Amazon["ACTIVE"] == "true")
amazon.PostInventory(extra);
{ helper.AsLog("Amazon_StokYenile Hata:", ex); }
var CSE = helper.getSettings("CICEKSEPETI");
if (CSE != null && CSE.ContainsKey("ACTIVE") && CSE["ACTIVE"] == "true")
cse.CicekSepeti_UpdateStockPrice(extra);
Bos = 0, Diger = 1, Renk = 2, Beden = 3, FiyatSifir = 4, StokSifir = 5, StokKritik = 6, KategoriOzellik = 7,
static SignalRHub hub = new SignalRHub();
public static void LogAdd(ref List<string> logList, string type, string extra = "", string desc = "", int add = 0, int edit = 0, int error = 0, int total = 0, bool bold = false, int product = 0, bool status = false, bool process = true, string productCode = "", int? productQuantity = null, string productPrice = "", string productStatus = "", bool isVisible = true, string islem = "", errorType errorType = errorType.Bos)
if (type == "HB" && !string.IsNullOrEmpty(desc))
if (desc.Contains("DuplicateHepsiburadaSkuSpecified"))
desc = desc.Replace("DuplicateHepsiburadaSkuSpecified", " HepsiburadaSku Çakışma oldu. ");
if (!String.IsNullOrWhiteSpace(extra) || !String.IsNullOrWhiteSpace(desc))
var _quantity = productQuantity != null ? String.Format("[Miktar: {0}]", productQuantity) : String.Empty;
var _status = !String.IsNullOrEmpty(productStatus) ? String.Format("[Durum: {0}]", productStatus) : String.Empty;
var _price = !String.IsNullOrEmpty(productPrice) ? String.Format("[Fiyat: {0}]", productPrice) : String.Empty;
var _code = !String.IsNullOrEmpty(productCode) ? String.Format("[{0}]", productCode) : String.Empty;
logList.Add(String.Format("{0} [Mesaj: {1}] {2} {4} {3}", _code, (!String.IsNullOrWhiteSpace(extra) ? extra : desc), _quantity, _status, _price));
NewErrorLog(type, logList);
#region Baslangıc Kontrolleri
var msg = new AKINSOFT.SDK.SanalPazarYardim.LogMsg();
if (HttpContext.Current != null && HttpRuntime.Cache.Get("sanalpazar_islem") != null)
msg = JsonConvert.DeserializeObject<AKINSOFT.SDK.SanalPazarYardim.LogMsg>(HttpRuntime.Cache.Get("sanalpazar_islem").ToString());
var RtObject = new Dictionary<string, int>()
{ "process" , process ? 1 : 0 },
if (msg.RtObject != null)
RtObject = (Dictionary<string, int>)msg.RtObject;
string postedMessage = "";
if (total > 0) { RtObject["total"] = Eklenti2.intParser(RtObject["total"]) + total; }
if (add > 0) { RtObject["add"] = Eklenti2.intParser(RtObject["add"]) + add; ; }
if (edit > 0) { RtObject["edit"] = Eklenti2.intParser(RtObject["edit"]) + edit; ; }
if (error > 0) { RtObject["error"] = Eklenti2.intParser(RtObject["error"]) + error; }
if (!String.IsNullOrEmpty(desc))
msg.Msg = String.Format("{2}<li {6} data-vm='{7}' style=\"" + (error > 0 ? "color:red" : "color:black") + "\"><small>{7} - {0}</small> : {4}<{3}>{1}</{3}>{5}</li>", Eklenti2.TarihFormatla(DateTime.Now.ToString()), desc, msg.Msg, bold ? "b" : "l", product > 0 ? "<a target='blank' href='/Panel2/ProductProperties.aspx?Act=GenelBilgiler&ID=" + product + "'>" : "", product > 0 ? "</a>" : "", string.IsNullOrEmpty(islem) ? "" : "data-islem='" + islem + "'", type);
postedMessage = String.Format("<li {6} data-vm='{7}' style=\"" + (error > 0 ? "color:red" : "color:black") + "\"><small>{7} - {0}</small> : {4}<{3}>{1}</{3}>{5}</li>{2}", Eklenti2.TarihFormatla(DateTime.Now.ToString()), desc, "", bold ? "b" : "l", product > 0 ? "<a target='blank' href='/Panel2/ProductProperties.aspx?Act=GenelBilgiler&ID=" + product + "'>" : "", product > 0 ? "</a>" : "", string.IsNullOrEmpty(islem) ? "" : "data-islem='" + islem + "'", type);
else msg.Status = status;
hub.publishSanalPazarEvents(postedMessage, RtObject);
if (EticaretStatic.SanalPazarErrors == null)
EticaretStatic.SanalPazarErrors = new List<SanalPazarError>();
EticaretStatic.SanalPazarErrors.Add(new SanalPazarError { vm = "N11", desc = desc, date = (DateTime.Now), bold = bold, product = product });
if (HttpRuntime.Cache.Get("sanalpazar_islem") != null) HttpRuntime.Cache.Remove("sanalpazar_islem");
HttpRuntime.Cache.Add("sanalpazar_islem", JsonConvert.SerializeObject(msg), null, DateTime.Now.AddMinutes(3), Cache.NoSlidingExpiration, CacheItemPriority.Normal, null);
if (errorType != errorType.Bos)
using (asticaret_demoEntities n = new asticaret_demoEntities())
sanalpazarhatalar hata = new sanalpazarhatalar();
hata.StokKod = productCode;
hata.Tip = errorType.ToString();
hata.Tarih = DateTime.Now;
n.sanalpazarhatalar.Add(hata);
Eklenti2.DebugLog("Sanalpazar loadd : " + ex);
public string ErrorText(string spType)
if (errorListEptt != null)
StringBuilder sb = new StringBuilder();
foreach (var item in errorListEptt)
sb.Append(item.Key + "-" + item.Value + "\r\n");
string text = sb.ToString();
if (errorListN11 != null)
StringBuilder sb = new StringBuilder();
foreach (var item in errorListN11)
sb.Append(item.Key + "-" + item.Value + "\r\n");
string text = sb.ToString();
StringBuilder sb = new StringBuilder();
foreach (var item in errorListGG)
sb.Append(item.Key + "-" + item.Value + "\r\n");
string text = sb.ToString();
if (errorListTrendYol != null)
StringBuilder sb = new StringBuilder();
foreach (var item in errorListTrendYol)
sb.Append(item.Key + "-" + item.Value + "\r\n");
string text = sb.ToString();
public class SanalPazarYardim:IDisposable
~SanalPazarYardim() { Dispose(); }
public void Dispose() { GC.SuppressFinalize(this); }
public SanalPazarYardim()
asticaret_demoEntities n = Eklenti2.ChangeEntityContext();
this.ayar = n.ayar.FirstOrDefault();
if (EticaretStatic.SPUyeliksizKullanici == null)
kullaniciyeni user = n.kullaniciyeni.FirstOrDefault(x => x.Seviye == "Uyeliksiz");
user = new kullaniciyeni();
user.Ad = "Üye Olmadan Alışveriş";
user.Seviye = "Uyeliksiz";
user.Tarih = DateTime.Now;
user.VarsayilanDil = !String.IsNullOrEmpty(ayar.AYAR_VarsayilanDil) ? ayar.AYAR_VarsayilanDil : "tr_TR";
n.kullaniciyeni.Add(user);
EticaretStatic.SPUyeliksizKullanici = user;
Log.Error(ex.Message, new Dictionary<string, string> {
{ "İşlem", "SanalPazarYardim" },
{ "Konum", ex.StackTrace.ToString().Replace("konum: ", "") },
{ "Detay", "\r" + Eklenti2.stringParser(ex) }, });
public string AkinsoftAds(bool html = true)
html ? "<br/><br/><br/><p style=\"text-align:center\">Bu ürün <span style=\"color:#115ED1;\"><b> AKINSOFT E-Ticaret </b></span> Sistemleri tarafından listelenmiştir</p>"
: " Bu ürün AKINSOFT E-Ticaret Sistemleri tarafından listelenmiştir";
public void hareketsizSiparisleriSil(string type = "")
using (asticaret_demoEntities n = new asticaret_demoEntities())
n.Database.ExecuteSqlCommand("delete FROM siparistablosu WHERE NOT EXISTS(SELECT * FROM siparistablosuhr WHERE siparistablosu.SIPARIS_NO = SIPARIS_NO) AND TIMESTAMPDIFF(DAY, IslemTarihi, NOW()) < 1 AND (MUHASEBEYE_GONDERILDI=1 OR MUHASEBEYE_GONDERILDI=0)");
n.Database.ExecuteSqlCommand("DELETE FROM sipariskur WHERE IFNULL(SIPARIS_NO,'') <> '' AND SIPARIS_NO NOT IN (SELECT SIPARIS_NO FROM siparistablosu WHERE IFNULL(SIPARIS_NO,'')<>'' )");
if (Eklenti2.GelistiriciAyar("TREDNYOLREMOVEDUPLICATE").ToLower().Equals("true"))
n.Database.ExecuteSqlCommand("DELETE FROM siparistablosu WHERE blkodu IN (SELECT innertable.blkod FROM (SELECT MAX(ss.BLKODU) AS blkod FROM siparistablosu ss WHERE (SELECT COUNT(*) FROM siparistablosu ssq WHERE ss.sanalpazar_sipno=ssq.sanalpazar_sipno)>1 AND (MUHASEBEYE_GONDERILDI=1 OR MUHASEBEYE_GONDERILDI=0) GROUP BY sanalpazar_sipno) AS innertable)");
Eklenti2.DebugLog("SanalPazar.cs hareketsizSiparisleriSil " + JsonConvert.SerializeObject(ex));
public urun_sanapazarbilgi sanalPazarBilgiGetir(int urun_id)
using (asticaret_demoEntities n = new asticaret_demoEntities())
return n.urun_sanapazarbilgi.FirstOrDefault(b => b.URUN_ID == urun_id);
public enum pricePolicy { none = 0, discount = -1, profit = 1 }
public enum ratePolicy { rate = 0, quantity = 1, none = -1 }
public class urunSanalPazarFiyat
public string vmName { get; set; }
public pricePolicy amountPolicy { get; set; }
public ratePolicy rateOrQuantity { get; set; }
public float amount { get; set; }
public float extraAmount { get; set; }
public static urunSanalPazarFiyat getPrice(int urun_id, string vm, asticaret_demoEntities n = null)
if(n == null) { n = Eklenti2.ChangeEntityContext(); isDispose = true; }
urun_sanapazarbilgi bilgi = n.urun_sanapazarbilgi.FirstOrDefault(b => b.URUN_ID == urun_id);
if (bilgi.urunVmIndirimKar != null)
Dictionary<string, urunSanalPazarFiyat> dic = JsonConvert.DeserializeObject<Dictionary<string, urunSanalPazarFiyat>>(bilgi.urunVmIndirimKar);
bilgi = new urun_sanapazarbilgi();
n.urun_sanapazarbilgi.Add(bilgi);
if (isDispose) n.Dispose();
public void setPrice(int urun_id)
using (asticaret_demoEntities n = new asticaret_demoEntities())
urun_sanapazarbilgi u = n.urun_sanapazarbilgi.FirstOrDefault(b => b.URUN_ID == urun_id);
u = new urun_sanapazarbilgi();
var json = JsonConvert.DeserializeObject<Dictionary<string, urunSanalPazarFiyat>>(u.urunVmIndirimKar ?? "");
if (json.ContainsKey(vmName))
json = new Dictionary<string, urunSanalPazarFiyat>();
u.urunVmIndirimKar = json.SerializeObject();
Eklenti2.DebugLog("setPrice : " + JsonConvert.SerializeObject(ex));
n.urun_sanapazarbilgi.Add(u);
public void AsLog(string konum, Exception ex = null)
Eklenti2.DebugLog(konum + (ex == null ? String.Empty : ": " + ex.ToString()));
public void hataYazdirTxt(Exception ex, string dosyaAdi = "XmlEntHataLog")
if (Directory.Exists(HttpContext.Current.Server.MapPath("/Temp/Logs")))
if (!File.Exists(HttpContext.Current.Server.MapPath("/Temp/Logs/" + dosyaAdi + ".txt")))
w = File.CreateText(HttpContext.Current.Server.MapPath("/Temp/Logs/" + dosyaAdi + ".txt"));
w.WriteLine("--------------------------- --------------------------- " + DateTime.Now.ToString() + " --------------------------- ---------------------------");
w.WriteLine(ex.StackTrace + " Source:" + ex.Source + " Message:" + ex.Message + " InnerMessage" + ex.ToString());
w.WriteLine("--------------------------- --------------------------- --------------------------- --------------------------- --------------------------- ---------------------------");
StringBuilder sw = new StringBuilder();
sw.AppendLine("--------------------------- --------------------------- " + DateTime.Now.ToString() + " --------------------------- ---------------------------");
sw.AppendLine(ex.StackTrace + " Source:" + ex.Source + " Message:" + ex.Message + " InnerMessage" + ex.ToString());
sw.AppendLine("--------------------------- --------------------------- --------------------------- --------------------------- --------------------------- ---------------------------");
StreamWriter SW = File.AppendText(HttpContext.Current.Server.MapPath("/Temp/Logs/" + dosyaAdi + ".txt"));
SW.WriteLine(sw.ToString());
string hata = ext.ToString();
public string StokBirlestir(bool Isint, List<string> Data)
List<string> _uruns = new List<string>();
Data.ForEach(x => _uruns.Add(!String.IsNullOrEmpty(x) ? x.Trim().Replace("\"", "").Replace("'", "") : "0"));
_returnVal = String.Join(",", Isint ? _uruns : (_uruns.Select(x => "'" + x + "'").ToList()));
public ayar ayar = new ayar();
public void ErrorLog(Exception ex, string type)
Log.Error(ex.Message, new Dictionary<string, string>(){
{ "Konum", ex.StackTrace.ToString().Replace("konum: ", "") },
{ "Detay", "\r" + Eklenti2.stringParser(ex) },
public void ErrorLog(WebException ex, string type)
var resp = new StreamReader(ex.Response != null ? ex.Response.GetResponseStream() : new MemoryStream()).ReadToEnd();
Log.Error(ex.Message, new Dictionary<string, string>(){
{ "Konum Web Exception :", !String.IsNullOrEmpty(resp)?resp.ToString():ex.Message},
{ "Detay", "\r" + Eklenti2.stringParser(ex) } });
public Dictionary<string, string> getSettings(string type)
Dictionary<string, Dictionary<string, string>> settings = Ayar.AyarGetir<Dictionary<string, Dictionary<string, string>>>(Ayar.AyarBaslik.SanalPazarAyar);
if (settings != null && settings.ContainsKey(type)) return settings[type];
else return new Dictionary<string, string>();
public string getProductSettings(string param, string type, UrunYeni product, asticaret_demoEntities n = null)
if (n == null) { n = Eklenti2.ChangeEntityContext(); isDispose = true; }
urun_sanapazarbilgi bilgi = n.urun_sanapazarbilgi.FirstOrDefault(b => b.URUN_ID == product.ID);
bilgi = new urun_sanapazarbilgi { URUN_ID = product.ID };
n.urun_sanapazarbilgi.Add(bilgi);
param = type + "_" + param;
if (bilgi != null && !String.IsNullOrEmpty(bilgi.URUN_SanalPazar))
Dictionary<string, string> list = JsonConvert.DeserializeObject<Dictionary<string, string>>(bilgi.URUN_SanalPazar);
return (list.Count > 0 && list.ContainsKey(param) && !String.IsNullOrEmpty(list[param]) ? list[param] : null);
catch (Exception ex) { AsLog("getProductSettings Hata:", ex); return null; }
finally { if (isDispose) n.Dispose(); }
public void setSettings(string type, Dictionary<string, string> data)
Dictionary<string, Dictionary<string, string>> settings = Ayar.AyarGetir<Dictionary<string, Dictionary<string, string>>>(Ayar.AyarBaslik.SanalPazarAyar);
if (settings.ContainsKey(type)) settings[type] = data;
else settings.Add(type, data);
asticaret_demoEntities n = Eklenti2.ChangeEntityContext();
ayarlar a = n.ayarlar.FirstOrDefault(x => x.KEY == "SanalPazarAyar");
a.VAL = JsonConvert.SerializeObject(settings);
a.KEY = "SanalPazarAyar";
a.VAL = JsonConvert.SerializeObject(settings);
a.IslemYapan = Eklenti2.GetEditor().EDITOR_AdSoyad;
a.IslemTarihi = DateTime.Now;
public void siparisleriIptalEt(List<siparistablosu> siparisler)
if (siparisler != null && siparisler.Count > 0)
using (asticaret_demoEntities n = new asticaret_demoEntities())
foreach (var item in siparisler)
var siparis = n.siparistablosu.FirstOrDefault(v => v.BLKODU == item.BLKODU);
siparis.SIPARIS_DURUMU = 7;
siparis.SANALPAZAR_SIPNO += "_IPTAL";
siparis.MUHASEBEYE_GONDERILDI = 3;
public kullaniciyeni UserControl(Dictionary<string, string> settings, string Ad = null, string Soyad = null, string TicariUnvan = null, string Eposta = null, string MobilTelefon = null, string VergiDairesi = null, string VergiNo = null, string Kimlikno = "11111111111", string SPTipi = "", ayar ayar = null)
settings["USERSAVE"] = (settings.ContainsKey("USERSAVE") && !String.IsNullOrEmpty("USERSAVE") ? settings["USERSAVE"] : "none");
kullaniciyeni user = new kullaniciyeni();
asticaret_demoEntities n = Eklenti2.ChangeEntityContext();
ayar = n.ayar.FirstOrDefault();
if (settings["USERSAVE"] == "save" && !String.IsNullOrEmpty(Eposta))
user = n.kullaniciyeni.FirstOrDefault(x => x.Eposta == Eposta);
if (!String.IsNullOrEmpty(Ad) && String.IsNullOrEmpty(Soyad))
Soyad = Ad.Split(' ').Last();
Ad = Ad.Replace(" " + Soyad, "");
user = new kullaniciyeni();
SanalPazarYardim.saveUsersToGroup(SPTipi, settings, ref user);
KullaniciIslem ki = new KullaniciIslem();
int ID = ki.EkleGuncelle(
0, (!String.IsNullOrEmpty(Ad) ? Ad : ""), (!String.IsNullOrEmpty(Soyad) ? Soyad : ""), Eposta,
String.Empty, "", (!String.IsNullOrEmpty(MobilTelefon) ? MobilTelefon : ""), "", (this.ayar.AYAR_UyeAktivasyonSistemi == "Direkt aktivasyon"),
"", (this.ayar.AYAR_UyeAktivasyonSistemi == "Direkt aktivasyon"), ("Uye"), "",
(user.GrupID.ToString()), String.Empty, "", "", "", "", 0,
(!String.IsNullOrEmpty(ayar.AYAR_YeniUyeFiyatNo) ? ayar.AYAR_YeniUyeFiyatNo : ""),
(ayar.AYAR_YeniUyeBayi == 1 ? "Bayii" : "Uye"), Eklenti2.GuidOlustur(), 0, 0, TicariUnvan, 0, 2, 0
user = n.kullaniciyeni.FirstOrDefault(x => x.ID == ID);
int baslangicMuhasebeKodu = 0;
if (!String.IsNullOrEmpty(Eklenti2.GelistiriciAyar("TRADE_STARTING_NUMBER")))
int.TryParse(Eklenti2.GelistiriciAyar("TRADE_STARTING_NUMBER"), out baslangicMuhasebeKodu);
user.MuhasebeKodu = SPTipi != "" ? SPTipi + "_" + (user.ID + baslangicMuhasebeKodu) : "SP_" + (user.ID + baslangicMuhasebeKodu);
catch (Exception ex) { AsLog("UserControl Hata:", ex); Eklenti2.DebugLog(ex.ToString() + " , " + "Sanal Pazar"); }
return (user != null && user.ID > 0 ? user : EticaretStatic.SPUyeliksizKullanici);
user = n.kullaniciyeni.FirstOrDefault(x => x.Ad == SPTipi + "_USER");
if (user != null && user.ID > 0)
if (!String.IsNullOrEmpty(Eposta) && (String.IsNullOrEmpty(user.Eposta) || (Eposta != user.Eposta)))
KullaniciIslem ki = new KullaniciIslem();
int ID = ki.EkleGuncelle(
0, SPTipi + "_USER", "", SPTipi + "_USER",
String.Empty, "", "", "", (this.ayar.AYAR_UyeAktivasyonSistemi == "Direkt aktivasyon"),
"", (this.ayar.AYAR_UyeAktivasyonSistemi == "Direkt aktivasyon"), ("Uye"), SPTipi + "_USER",
"0", String.Empty, "", "", "", "", 0,
(!String.IsNullOrEmpty(ayar.AYAR_YeniUyeFiyatNo) ? ayar.AYAR_YeniUyeFiyatNo : ""),
(ayar.AYAR_YeniUyeBayi == 1 ? "Bayii" : "Uye"), Eklenti2.GuidOlustur(), 0, 0, "", 0, 2, 0
user = n.kullaniciyeni.FirstOrDefault(x => x.ID == ID);
public string DetailImageControl(string productDetay)
string siteAdres = ayar.AYAR_GenelSiteAdres;
HtmlDocument document = new HtmlDocument();
document.LoadHtml(productDetay);
document.DocumentNode.Descendants("img")
string src = e.GetAttributeValue("src", null) ?? "";
return !string.IsNullOrEmpty(src);
string currentSrcValue = x.GetAttributeValue("src", null);
if (currentSrcValue.Contains(Eklenti2.SiteResimKok) && !currentSrcValue.StartsWith("http"))
currentSrcValue = currentSrcValue.Replace(Eklenti2.SiteResimKok, siteAdres + Eklenti2.SiteResimKok);
x.SetAttributeValue("src", currentSrcValue);
return document.DocumentNode.OuterHtml;
Eklenti2.DebugLog(ex.Message);
public bool URLExists(string url)
WebRequest webRequest = WebRequest.Create(url);
webRequest.Timeout = 1200;
webRequest.Method = "HEAD";
var obj = webRequest.GetResponse();
if (obj != null && obj.ResponseUri != null)
if (obj.ContentLength == 0)
if (obj.ResponseUri.AbsolutePath.Contains("404.aspx") || obj.ResponseUri.AbsolutePath.Contains("Login.aspx"))
public List<ResimListesi> ProductImageWithAbsoluteURL(string productCode, string type = "", string resim = "", int productID = 0, int variantId = 0, List<resim> allUrlImages = null)
string url = Eklenti2.GenelSiteAdresDuzenle(this.ayar.AYAR_GenelSiteAdres);
productCode = Eklenti2.Seo2(productCode);
List<ResimListesi> list = new List<ResimListesi>();
if (HttpContext.Current == null)
context = Eklenti2.FakeHttpContext();
context = HttpContext.Current;
ResimListesi mainImg = new ResimListesi();
if (URLExists(String.Concat(url, Eklenti2.SiteResimKok, productCode, ".png"))) mainImg.Url = String.Concat(url, Eklenti2.SiteResimKok, productCode, ".png");
else if (URLExists(String.Concat(url, Eklenti2.SiteResimKok, productCode, ".jpg"))) mainImg.Url = String.Concat(url, Eklenti2.SiteResimKok, productCode, ".jpg");
else if (URLExists(String.Concat(url, Eklenti2.SiteResimKok, productCode, ".jpeg"))) mainImg.Url = String.Concat(url, Eklenti2.SiteResimKok, productCode, ".jpeg");
if (!string.IsNullOrEmpty(mainImg.Url))
mainImg.Url = mainImg.Url.Replace("//Resim", "/Resim");
if (!String.IsNullOrEmpty(mainImg.Url))
mainImg.Url = ClearProductImage(mainImg.Url);
mainImg.StokKodu = productCode;
string[] subImages = Directory.GetFiles(context.Server.MapPath(Eklenti2.SiteResimKok), productCode + "_*.*");
if (subImages.Count() > 0)
for (int i = 0; i < subImages.Count(); i++)
if (imageEx == ".jpg" || imageEx == ".png" || imageEx == ".jpeg")
if (subImages[i].Contains("\\"))
ResimListesi altresimx = new ResimListesi();
altresimx.StokKodu = productCode;
altresimx.Url = url + Eklenti2.SiteResimKok + subImages[i].Substring(subImages[i].LastIndexOf("\\") + 1);
altresimx.Url = altresimx.Url.Replace("//Resim", "/Resim");
altresimx.Url = ClearProductImage(altresimx.Url);
ResimListesi mainImage = new ResimListesi();
if (URLExists(String.Concat(url, (Eklenti2.SiteResimKok), productCode, ".png"))) mainImage.Url = String.Concat(url, Eklenti2.SiteResimKok, productCode, ".png");
else if (URLExists(String.Concat(url, (Eklenti2.SiteResimKok), productCode, ".jpeg"))) mainImage.Url = String.Concat(url, Eklenti2.SiteResimKok, productCode, ".jpeg");
else if (URLExists(String.Concat(url, (Eklenti2.SiteResimKok), productCode, ".jpg"))) mainImage.Url = String.Concat(url, Eklenti2.SiteResimKok, productCode, ".jpg");
if (!string.IsNullOrEmpty(mainImage.Url))
mainImage.Url = mainImage.Url.Replace("//Resim", "/Resim");
if (!String.IsNullOrEmpty(mainImage.Url))
mainImage.Url = ClearProductImage(mainImage.Url);
mainImage.StokKodu = productCode;
var extensions = new string[] { "png", "jpeg", "jpg" };
foreach (var ext in extensions)
bool isExists = URLExists(url + (Eklenti2.SiteResimKok) + productCode + "_" + counter + "." + ext);
ResimListesi altresimx = new ResimListesi();
altresimx.StokKodu = productCode;
altresimx.Url = url + (Eklenti2.SiteResimKok) + productCode + "_" + counter + "." + ext;
altresimx.Url = ClearProductImage(altresimx.Url);
ResimListesi mainImage = new ResimListesi();
if (URLExists(String.Concat(url, (Eklenti2.SiteResimKok), productCode, ".png"))) mainImage.Url = String.Concat(url, Eklenti2.SiteResimKok, productCode, ".png");
else if (URLExists(String.Concat(url, (Eklenti2.SiteResimKok), productCode, ".jpg"))) mainImage.Url = String.Concat(url, Eklenti2.SiteResimKok, productCode, ".jpg");
else if (URLExists(String.Concat(url, (Eklenti2.SiteResimKok), productCode, ".jpeg"))) mainImage.Url = String.Concat(url, Eklenti2.SiteResimKok, productCode, ".jpeg");
if (!string.IsNullOrEmpty(mainImage.Url))
mainImage.Url = mainImage.Url.Replace("//Resim", "/Resim");
if (!String.IsNullOrEmpty(mainImage.Url))
mainImage.ContentType = ImageMimeDictionary(mainImage.Url.Substring(mainImage.Url.LastIndexOf('.')));
public static void saveUsersToGroup(string vm, Dictionary<string, string> setting, ref kullaniciyeni user)
if (setting == null) return;
if (!setting.ContainsKey("userOrdersSaveToGroup")) return;
if (setting.ContainsKey("USERSAVE") && !String.IsNullOrEmpty(setting["USERSAVE"]) && setting["USERSAVE"].ToLower() == "save")
if (!String.IsNullOrEmpty(setting["userOrdersSaveToGroup"]) && setting["userOrdersSaveToGroup"].ToLower() == "true")
GrupIslem gr = new GrupIslem();
var mevcutMu = gr.GrupGetir(0, "Kullanıcı", vm, 1, 100);
if (mevcutMu.Gruplar.Count == 0)
ID = gr.EkleGuncelle(0, vm, "Kullanıcı");
ID = mevcutMu.Gruplar[0].ID;
public List<ResimListesi> ProductImage(string productCode, string type = "", string resim = "", int productID = 0, int variantId = 0, List<resim> allUrlImages = null)
string url = Eklenti2.GenelSiteAdresDuzenle(this.ayar.AYAR_GenelSiteAdres);
productCode = Eklenti2.Seo2(productCode);
List<ResimListesi> list = new List<ResimListesi>();
if (HttpContext.Current == null)
context = Eklenti2.FakeHttpContext();
context = HttpContext.Current;
ResimListesi mainImg = new ResimListesi();
if (File.Exists(context.Server.MapPath(Eklenti2.SiteResimKok) + productCode + ".png")) mainImg.Url = url + Eklenti2.SiteResimKok + productCode + ".png";
else if (File.Exists(context.Server.MapPath(Eklenti2.SiteResimKok) + productCode + ".jpg")) mainImg.Url = url + Eklenti2.SiteResimKok + productCode + ".jpg";
else if (File.Exists(context.Server.MapPath(Eklenti2.SiteResimKok) + productCode + ".jpeg")) mainImg.Url = url + Eklenti2.SiteResimKok + productCode + ".jpeg";
if (mainImg != null && mainImg.Url != null)
mainImg.Url = mainImg.Url.Replace("//Resim", "/Resim");
if (!String.IsNullOrEmpty(mainImg.Url))
mainImg.Url = ClearProductImage(mainImg.Url);
mainImg.StokKodu = productCode;
string[] subImages = Directory.GetFiles(context.Server.MapPath(Eklenti2.SiteResimKok), productCode + "_*.*");
if (subImages.Count() > 0)
for (int i = 0; i < subImages.Count(); i++)
if (imageEx == ".jpg" || imageEx == ".png" || imageEx == ".jpeg")
if (subImages[i].Contains("\\"))
ResimListesi altresimx = new ResimListesi();
altresimx.StokKodu = productCode;
altresimx.Url = url + Eklenti2.SiteResimKok + subImages[i].Substring(subImages[i].LastIndexOf("\\") + 1);
altresimx.Url = altresimx.Url.Replace("//Resim", "/Resim");
altresimx.Url = ClearProductImage(altresimx.Url);
ResimListesi mainImage = new ResimListesi();
if (File.Exists(context.Server.MapPath(Eklenti2.SiteResimKok) + productCode + ".png")) mainImage.Url = url + Eklenti2.SiteResimKok + productCode + ".png";
else if (File.Exists(context.Server.MapPath(Eklenti2.SiteResimKok) + productCode + ".jpeg")) mainImage.Url = url + Eklenti2.SiteResimKok + productCode + ".jpeg";
else if (File.Exists(context.Server.MapPath(Eklenti2.SiteResimKok) + productCode + ".jpg")) mainImage.Url = url + Eklenti2.SiteResimKok + productCode + ".jpg";
if (mainImage != null && mainImage.Url != null)
mainImage.Url = mainImage.Url.Replace("//Resim", "/Resim");
if (!String.IsNullOrEmpty(mainImage.Url))
mainImage.Url = ClearProductImage(mainImage.Url);
mainImage.StokKodu = productCode;
string[] subImages = Directory.GetFiles(context.Server.MapPath(Eklenti2.SiteResimKok), productCode + "_*.*");
if (subImages.Count() > 0)
foreach (string subImage in subImages.ToList())
imageEx = Path.GetExtension(subImage);
if (imageEx.Trim().ToLower() == ".jpg" || imageEx.Trim().ToLower() == ".png" || imageEx.Trim().ToLower() == ".jpeg")
if (subImage.Contains("\\"))
ResimListesi altresimx = new ResimListesi();
altresimx.StokKodu = productCode;
altresimx.Url = url + Eklenti2.SiteResimKok + subImage.Substring(subImage.LastIndexOf("\\") + 1);
altresimx.Url = ClearProductImage(altresimx.Url);
if (!string.IsNullOrEmpty(resim) && resim.ToString().Contains("http") && !resim.Contains("ResimYok.png"))
ResimListesi altresimx = new ResimListesi();
altresimx.StokKodu = productCode;
altresimx.Url = ClearProductImage(resim);
if (productID != 0 && allUrlImages != null)
List<resim> pImages = allUrlImages.Where(x => x.RESIM_DisID.Value == productID).ToList();
foreach (var item in pImages)
if (item.RESIM_Url.Substring(0, 1) == "/")
item.RESIM_Url = item.RESIM_Url.Substring(1);
ResimListesi pImage = new ResimListesi();
pImage.SiraNo = siraNo + 1;
pImage.StokKodu = productCode;
pImage.Url = url + item.RESIM_RootPath + item.RESIM_Url;
List<resim> vImages = allUrlImages.Where(x => x.RESIM_DisID.Value == variantId).ToList();
foreach (var item in vImages)
if (item.RESIM_Url.Substring(0, 1) == "/")
item.RESIM_Url = item.RESIM_Url.Substring(1);
ResimListesi pImage = new ResimListesi();
pImage.SiraNo = siraNo + 1;
pImage.StokKodu = productCode;
pImage.Url = url + item.RESIM_RootPath + item.RESIM_Url;
if (!string.IsNullOrEmpty(resim) && resim.ToString().Contains("http") && !resim.Contains("ResimYok.png"))
if (resim.Substring(0, 1) == "/")
resim = resim.Substring(1);
string _res = ClearProductImage(!resim.Contains("http") ? url + resim : resim);
if (list.FirstOrDefault(x => x.Url == _res) == null)
ResimListesi pImage = new ResimListesi();
pImage.StokKodu = productCode;
pImage.Url = !resim.Contains("http") ? url + resim : ClearProductImage(resim);
ResimListesi mainImage = new ResimListesi();
if (File.Exists(context.Server.MapPath(Eklenti2.SiteResimKok) + productCode + ".png")) mainImage.Url = Eklenti2.SiteResimKok + productCode + ".png";
else if (File.Exists(context.Server.MapPath(Eklenti2.SiteResimKok) + productCode + ".jpg")) mainImage.Url = Eklenti2.SiteResimKok + productCode + ".jpg";
else if (File.Exists(context.Server.MapPath(Eklenti2.SiteResimKok) + productCode + ".jpeg")) mainImage.Url = Eklenti2.SiteResimKok + productCode + ".jpeg";
if (!String.IsNullOrEmpty(mainImage.Url))
mainImage.ContentType = ImageMimeDictionary(mainImage.Url.Substring(mainImage.Url.LastIndexOf('.')));
public List<resim> GetAllUrlImages(List<int> idList)
asticaret_demoEntities n = Eklenti2.ChangeEntityContext();
var imageList = n.resim.Where(x => idList.Contains(x.RESIM_DisID.Value)).ToList();
return new List<resim>();
public string ImageMimeDictionary(string uzanti)
Dictionary<string, string> dct = new Dictionary<string, string>
{ ".svg", "image/svg+xml" },
{ ".jpe", "image/jpeg" },
{ ".jpeg", "image/jpeg" },
{ ".jpg", "image/jpeg" },
if (dct.ContainsKey(uzanti.Trim()))
return dct[uzanti.Trim()];
public string ClearProductImage(string imageUrl)
if (imageUrl.Contains("https://"))
imageUrl = imageUrl.Replace("https://", "");
imageUrl = imageUrl.Replace("//", "/");
imageUrl = "https://" + imageUrl;
else if (imageUrl.Contains("http://"))
imageUrl = imageUrl.Replace("http://", "");
imageUrl = imageUrl.Replace("//", "/");
imageUrl = "http://" + imageUrl;
var imageEx = Path.GetExtension(imageUrl);
if (imageEx.Contains("PNG") || imageEx.Contains("JPG") || imageEx.Contains("JPEG"))
imageUrl = Path.ChangeExtension(imageUrl, imageEx.ToLower());
private List<markayeni> Brands = new List<markayeni>();
public string Brand(string p)
MarkaIslem mrk = new MarkaIslem();
Brands = mrk.MarkaGetirTumu();
var marka = Brands.FirstOrDefault(x => x.Kodu == p);
return (marka != null && !String.IsNullOrEmpty(marka.Ad) ? marka.Ad.Trim().ToString() : String.Empty);
private List<kategoriyeni> ProductCategories = new List<kategoriyeni>();
public string Category(string categoryCode, string categoryDepth)
if (ProductCategories.Count == 0)
kategoriIslemleri ki = new kategoriIslemleri();
ProductCategories = ki.KategoriTumuGetir();
if (categoryCode.Split(',').Count() == 4)
categoryCode = categoryCode.Split(',')[0] + "," + categoryCode.Split(',')[1] + "," + categoryCode.Split(',')[2];
categoryCode = categoryCode.Split(',')[0] + "," + categoryCode.Split(',')[1];
categoryCode = categoryCode.Split(',')[0];
else if (categoryCode.Split(',').Count() == 3)
categoryCode = categoryCode.Split(',')[0] + "," + categoryCode.Split(',')[1];
categoryCode = categoryCode.Split(',')[0];
else if (categoryCode.Split(',').Count() == 2)
categoryCode = categoryCode.Split(',')[0];
kategoriyeni category = ProductCategories.FirstOrDefault(x => x.Kodu == GetProductCategory(categoryCode));
return (category != null && !String.IsNullOrEmpty(category.Ad) ? category.Ad.Trim() : String.Empty);
public string GetProductCategory(string KategoriAgac)
string clearCat = KategoriAgac.Contains("|") ? CampaignClear(KategoriAgac) : KategoriAgac;
if (clearCat.LastIndexOf(",") == -1) return clearCat;
string returned = clearCat.Substring(clearCat.LastIndexOf(",") + 1, clearCat.Length - clearCat.LastIndexOf(",") - 1);
public string CampaignClear(string Category)
return (Category.IndexOf("|") != -1 ? Category.Trim().Substring(0, Category.Trim().IndexOf("|")) : Category.Trim());
public List<UrunYeni> ProductsWithBarcodes(string type, string extraSql = null, List<string> extraProductBarcodes = null, List<string> extraFoesBrands = null, bool IsSelectProduct = false, List<string> selectedProducts = null)
var _extraSql = " AND URUN_BARKODU IN(" + StokBirlestir(false, extraProductBarcodes) + ") ";
return Products(type, extraSql, null, extraFoesBrands, IsSelectProduct, selectedProducts);
public List<UrunYeni> ProductsWithGGID(string type, List<string> ggIDS = null, List<string> extraProductBarcodes = null, List<string> extraFoesBrands = null, bool IsSelectProduct = false, List<string> selectedProducts = null)
var urunIDS = new List<int?>();
using (asticaret_demoEntities n = new asticaret_demoEntities())
urunIDS = n.urun_sanapazarbilgi.AsNoTracking().AsEnumerable().Where(b => ggIDS.Any(a => a == b.URUN_GittigidiyorID)).Select(k => k.URUN_ID).ToList();
if (urunIDS != null && urunIDS.Count > 0)
string _extraSql = " AND u.URUN_ID in (" + String.Join(",", urunIDS) + ")";
return Products(type, _extraSql + ' ' + _extraSql, null, extraFoesBrands, IsSelectProduct, selectedProducts);
return new List<UrunYeni>();
public List<UrunYeni> Products(string type, string extraSql = null, List<string> extraProduct = null, List<string> extraFoesBrands = null, bool IsSelectProduct = false, List<string> selectedProducts = null, bool onlyActive = true, bool onlyMainStock = true)
List<UrunYeni> productList = new List<UrunYeni>();
if(extraProduct != null && extraProduct.Count > 0)
int partSize = Eklenti2.intParser(Math.Ceiling((decimal)extraProduct.Count / partCount));
for (int i = 0; i < partSize; i++)
productList.AddRange(GetProducts(type, ref extraSql, extraProduct.Skip(i * partCount).Take(partCount).ToList(), extraFoesBrands, onlyActive, onlyMainStock));
else if (IsSelectProduct)
if (selectedProducts.Count > 0)
int partSize = Eklenti2.intParser(Math.Ceiling((decimal)selectedProducts.Count / partCount));
for (int i = 0; i < partSize; i++)
productList.AddRange(GetProducts(type, ref extraSql, selectedProducts.Skip(i * partCount).Take(partCount).ToList(), extraFoesBrands, onlyActive, onlyMainStock));
productList.AddRange( GetProducts(type, ref extraSql, extraProduct, extraFoesBrands, onlyActive, onlyMainStock));
private List<UrunYeni> GetProducts(string type, ref string extraSql, List<string> extraProduct, List<string> extraFoesBrands, bool onlyActive, bool onlyMainStock)
using (asticaret_demoEntities n = new asticaret_demoEntities())
StringBuilder SQL = new StringBuilder(), AramaSQL = new StringBuilder();
List<UrunYeni> ret = new List<UrunYeni>();
if (extraProduct != null && extraProduct.Count > 0)
extraSql = string.Format("{0} AND URUN_StokKod IN({1}) ", extraSql, StokBirlestir(false, extraProduct));
if (extraFoesBrands != null && extraFoesBrands.Count > 0)
extraSql = string.Format("{0} AND u.URUN_Marka NOT IN({1}) ", extraSql, StokBirlestir(false, extraFoesBrands));
if (Eklenti2.boolParser(Eklenti2.GelistiriciAyar("SPNEWPROPMAPPING")))
LEFT JOIN sanalpazarozellik spo ON SUBSTRING_INDEX(SUBSTRING_INDEX(URUN_Kategori,'|',1),',',-1) = spo.sanalPazarAkinsoftKategori
WHERE (URUN_AnaStok='' OR URUN_AnaStok='0' OR URUN_AnaStok IS NULL)
AND ((spo.sanalPazarN11Kategori IS NOT NULL AND spo.sanalPazarN11Kategori <> '') OR ( sn.URUN_N11cat <> '0' AND sn.URUN_N11cat <> '' AND sn.URUN_N11cat IS NOT NULL)) {0}", (!String.IsNullOrEmpty(extraSql) ? extraSql : String.Empty));
AramaSQL.Append(" WHERE (ifnull(URUN_AnaStok,'')='' OR ifnull(URUN_AnaStok,'0')='0') AND ((ifnull(sn.URUN_N11cat,'0') <> '0' AND ifnull(sn.URUN_N11cat,'') <> '')");
AramaSQL.AppendFormat(" OR (sn.URUN_ID IN (SELECT uo.OZELLIK_UrunID FROM urunozellik uo INNER JOIN ozellikyeni oy ON oy.Ad=uo.OZELLIK_Text WHERE ifnull(oy.sp_n11,'') <> '') AND sn.URUN_ID NOT IN (SELECT URUN_ID FROM urun u WHERE (ifnull(URUN_AnaStok,'')='' OR ifnull(URUN_AnaStok,'0')='0') AND (ifnull(URUN_N11cat,'0') <> '0' AND ifnull(URUN_N11cat,'') <> '')))) {0}", (!String.IsNullOrEmpty(extraSql) ? extraSql : String.Empty));
else if (type == "GITTIGIDIYOR")
if (Eklenti2.boolParser(Eklenti2.GelistiriciAyar("SPNEWPROPMAPPING"))) AramaSQL.AppendFormat(@"
LEFT JOIN sanalpazarozellik spo ON SUBSTRING_INDEX(SUBSTRING_INDEX(URUN_Kategori,'|',1),',',-1) = spo.sanalPazarAkinsoftKategori
WHERE (URUN_AnaStok='' OR URUN_AnaStok='0' OR URUN_AnaStok IS NULL)
AND ((spo.sanalPazarGGKategori IS NOT NULL AND spo.sanalPazarGGKategori <> '') OR ( sn.URUN_Gittigidiyorcat <> '0' AND sn.URUN_Gittigidiyorcat <> '' AND sn.URUN_Gittigidiyorcat IS NOT NULL))
{0}", (!String.IsNullOrEmpty(extraSql) ? extraSql : String.Empty));
else AramaSQL.AppendFormat(@"
WHERE (URUN_AnaStok='' OR URUN_AnaStok='0' OR URUN_AnaStok IS NULL)
AND (( sn.URUN_Gittigidiyorcat <> '0' AND sn.URUN_Gittigidiyorcat <> '' AND sn.URUN_Gittigidiyorcat IS NOT NULL AND sn.URUN_Gittigidiyorcat <> '')
OR (sn.URUN_ID IN (SELECT uo.OZELLIK_UrunID FROM urunozellik uo INNER JOIN ozellikyeni oy ON oy.Ad=uo.OZELLIK_Text WHERE oy.sp_gg IS NOT NULL AND oy.sp_gg <> '') AND u.URUN_ID NOT IN (SELECT URUN_ID FROM urun u WHERE (URUN_AnaStok='' OR URUN_AnaStok='0' OR URUN_AnaStok IS NULL) AND (( sn.URUN_Gittigidiyorcat <> '0' AND sn.URUN_Gittigidiyorcat <> '' AND sn.URUN_Gittigidiyorcat IS NOT NULL AND sn.URUN_Gittigidiyorcat <> '')))))
{0}", (!String.IsNullOrEmpty(extraSql) ? extraSql : String.Empty));
else if (type == "EPTTAVM")
if (Eklenti2.boolParser(Eklenti2.GelistiriciAyar("SPNEWPROPMAPPING"))) AramaSQL.AppendFormat(@"
LEFT JOIN sanalpazarozellik spo ON SUBSTRING_INDEX(SUBSTRING_INDEX(URUN_Kategori,'|',1),',',-1) = spo.sanalPazarAkinsoftKategori
WHERE (URUN_AnaStok='' OR URUN_AnaStok='0' OR URUN_AnaStok IS NULL)
AND ((spo.sanalPazarEpttKategori IS NOT NULL AND spo.sanalPazarEpttKategori <> '') OR (sn.URUN_Epttcat <> '0' AND sn.URUN_Epttcat <> '' AND sn.URUN_Epttcat IS NOT NULL))
{0}", (!String.IsNullOrEmpty(extraSql) ? extraSql : String.Empty));
else AramaSQL.AppendFormat(@"
WHERE (URUN_AnaStok='' OR URUN_AnaStok='0' OR URUN_AnaStok IS NULL)
AND (sn.URUN_Epttcat <> '0' AND sn.URUN_Epttcat <> '' AND sn.URUN_Epttcat IS NOT NULL AND sn.URUN_Epttcat <> '')
{0}", (!String.IsNullOrEmpty(extraSql) ? extraSql : String.Empty));
else if (type == "AMAZON")
if (Eklenti2.boolParser(Eklenti2.GelistiriciAyar("SPNEWPROPMAPPING"))) AramaSQL.AppendFormat(@"
LEFT JOIN sanalpazarozellik spo ON SUBSTRING_INDEX(SUBSTRING_INDEX(URUN_Kategori,'|',1),',',-1) = spo.sanalPazarAkinsoftKategori
WHERE (URUN_AnaStok='' OR URUN_AnaStok='0' OR URUN_AnaStok IS NULL)
AND ( IFNULL(sn.URUN_AmazonAsin, '') <> '' OR (spo.sanalPazarAmazonKategori IS NOT NULL AND spo.sanalPazarAmazonKategori <> '') OR ( sn.URUN_AmazonKat <> '0' AND sn.URUN_AmazonKat <> '' AND sn.URUN_AmazonKat IS NOT NULL))
{0}", (!String.IsNullOrEmpty(extraSql) ? extraSql : String.Empty));
AramaSQL.AppendFormat(@"WHERE (URUN_AnaStok='' OR URUN_AnaStok='0' OR URUN_AnaStok IS NULL)
AND (IFNULL(sn.URUN_AmazonAsin, '') <> '' OR (sn.URUN_AmazonKat IS NOT NULL AND sn.URUN_AmazonKat <> '0' AND sn.URUN_AmazonKat <> '' AND LENGTH(sn.URUN_AmazonKat) > 60)
OR (sn.URUN_AmazonAsin IS NOT NULL AND sn.URUN_AmazonAsin <> '' AND sn.URUN_AmazonAsin <> '0'))
{0}", (!String.IsNullOrEmpty(extraSql) ? extraSql : String.Empty));
else if (type == "CICEKSEPETI")
LEFT JOIN sanalpazarozellik spo ON SUBSTRING_INDEX(SUBSTRING_INDEX(URUN_Kategori,'|',1),',',-1) = spo.sanalPazarAkinsoftKategori
AND ((spo.sanalPazarCSKategori IS NOT NULL AND spo.sanalPazarCSKategori <> '') OR ( sn.urun_CSID <> '0' AND sn.urun_CSID <> '' AND sn.urun_CSID IS NOT NULL))
{0}", (!String.IsNullOrEmpty(extraSql) ? extraSql : String.Empty), (onlyMainStock ? " (URUN_AnaStok='' OR URUN_AnaStok='0' OR URUN_AnaStok IS NULL) " : "1=1"));
else if (type == "HEPSIBURADAV2")
LEFT JOIN sanalpazarozellik spo ON SUBSTRING_INDEX(SUBSTRING_INDEX(URUN_Kategori,'|',1),',',-1) = spo.sanalPazarAkinsoftKategori
WHERE (URUN_AnaStok='' OR URUN_AnaStok='0' OR URUN_AnaStok IS NULL)
AND ((spo.sanalPazarHBKategori IS NOT NULL AND spo.sanalPazarHBKategori <> '') OR ( sn.urun_HBID <> '0' AND sn.urun_HBID <> '' AND sn.urun_HBID IS NOT NULL))
and (sn.Urun_HepsiburadaSKU IS NULL OR sn.Urun_HepsiburadaSKU = '')
{0}", (!String.IsNullOrEmpty(extraSql) ? extraSql : String.Empty));
else if (type == "HEPSIBURADA")
AramaSQL.AppendFormat(" WHERE {0} {1}", (onlyActive ? "URUN_Onay='Yayında'" : " 1=1 "), (!String.IsNullOrEmpty(extraSql) ? extraSql : String.Empty));
else if (type == "TRENDYOL")
AramaSQL.AppendFormat(" WHERE (URUN_AnaStok='' OR URUN_AnaStok='0' OR URUN_AnaStok IS NULL) {0}", (!String.IsNullOrEmpty(extraSql) ? extraSql : String.Empty));
else if (type == "N11PRO")
AramaSQL.AppendFormat(@" LEFT JOIN sanalpazarozellik spo ON SUBSTRING_INDEX(SUBSTRING_INDEX(URUN_Kategori,'|',1),',',-1) = spo.sanalPazarAkinsoftKategori
WHERE (URUN_AnaStok='' OR URUN_AnaStok='0' OR URUN_AnaStok IS NULL)
AND ((spo.sanalPazarN11PROKategori IS NOT NULL AND spo.sanalPazarN11PROKategori <> '') OR (sn.URUN_N11ProCat <> '0' AND sn.URUN_N11ProCat <> '' AND sn.URUN_N11ProCat IS NOT NULL) OR
(sn.URUN_N11ProBarkodu <> '0' AND sn.URUN_N11ProBarkodu <> '' AND sn.URUN_N11ProBarkodu IS NOT NULL))
{0}", (!String.IsNullOrEmpty(extraSql) ? extraSql : String.Empty));
else if (type == "GOOGLEMERCHANT")
LEFT JOIN sanalpazarozellik spo ON SUBSTRING_INDEX(SUBSTRING_INDEX(URUN_Kategori,'|',1),',',-1) = spo.sanalPazarAkinsoftKategori
WHERE (URUN_AnaStok='' OR URUN_AnaStok='0' OR URUN_AnaStok IS NULL)
AND ((spo.googleTaxonomy IS NOT NULL AND spo.googleTaxonomy <> '') OR ( sn.URUN_GoogleCat <> '0' AND sn.URUN_GoogleCat <> '' AND sn.URUN_GoogleCat IS NOT NULL))
{0}", (!String.IsNullOrEmpty(extraSql) ? extraSql : String.Empty));
else if (type == "AKINSOFTSANALPAZAR")
AramaSQL.AppendFormat(" WHERE URUN_Onay='Yayında' {0}", (!String.IsNullOrEmpty(extraSql) ? extraSql : String.Empty));
else if (type == "MODANISA")
AramaSQL.AppendFormat(@"LEFT JOIN sanalpazarozellik spo ON SUBSTRING_INDEX(SUBSTRING_INDEX(URUN_Kategori,'|',1),',',-1) = spo.sanalPazarAkinsoftKategori
WHERE (URUN_AnaStok='' OR URUN_AnaStok='0' OR URUN_AnaStok IS NULL)
AND ((sn.URUN_modanisa_CatOzellik IS NOT NULL AND sn.URUN_modanisa_CatOzellik <> '') OR (spo.sanalPazarModanisaKategori IS NOT NULL AND spo.sanalPazarModanisaKategori <> '' ))
{0}", (!String.IsNullOrEmpty(extraSql) ? extraSql : String.Empty));
AramaSQL.AppendFormat(@"LEFT JOIN sanalpazarozellik spo ON SUBSTRING_INDEX(SUBSTRING_INDEX(URUN_Kategori,'|',1),',',-1) = spo.sanalPazarAkinsoftKategori
AND ((spo.sanalPazarFLOKategori IS NOT NULL AND spo.sanalPazarFLOKategori <> '') OR ( sn.URUN_FLOCat <> '0' AND sn.URUN_FLOCat <> '' AND sn.URUN_FLOCat IS NOT NULL))
{0}", (!String.IsNullOrEmpty(extraSql) ? extraSql : String.Empty), (onlyMainStock ? " (URUN_AnaStok='' OR URUN_AnaStok='0' OR URUN_AnaStok IS NULL) " : "1=1"));
else if (type == "MORHIPO")
AramaSQL.AppendFormat(@"LEFT JOIN sanalpazarozellik spo ON SUBSTRING_INDEX(SUBSTRING_INDEX(URUN_Kategori,'|',1),',',-1) = spo.sanalPazarAkinsoftKategori WHERE {0}", (!String.IsNullOrEmpty(extraSql) ? extraSql : "1=1"));
SQL.Append(EticaretStatic.DbTabloSanalPazar + AramaSQL.ToString());
if (type == "GITTIGIDIYOR" && !String.IsNullOrEmpty(Eklenti2.GelistiriciAyar("GGPOSTPRODUCT_ORDERBYID_DESC")) && Eklenti2.GelistiriciAyar("GGPOSTPRODUCT_ORDERBYID_DESC") == "true")
SQL.Append(" order by u.URUN_ID desc");
ret = n.Database.SqlQuery<UrunYeni>(SQL.ToString()).ToList();
if (type == "N11" && _isDetailed)
AsLog("Products* Hata:", ex);
ErrorLog(ex, " : " + SQL);
Eklenti2.DebugLog(ex.InnerException != null ? JsonConvert.SerializeObject(ex.InnerException) : ex.Message);
return new List<UrunYeni>();
string stokKoduOptimizasyonu(string st)
return Eklenti2.Seo(st.ToLower().Trim()).Replace("-", "");
string stokKoduOptimizasyonu2(string st)
return (st.ToLower().Trim()).Replace("-", "");
delegate TResult ParamsFunc<T1, TResult>(T1 arg1);
public UrunYeni Product(string code = null, string GGID = null, bool IsBarcode = false, List<UrunYeni> ProductList = null, bool isCodeUsedByID = false, string ekAlan = null, string pazar = "")
if (code != null && code.Contains("'"))
code = code.Replace("'", " ");
if (!String.IsNullOrEmpty(ekAlan))
case "1": return ProductList.FirstOrDefault(v => stokKoduOptimizasyonu(v.EkAlan1) == stokKoduOptimizasyonu(code));
case "2": return ProductList.FirstOrDefault(v => stokKoduOptimizasyonu(v.EkAlan2) == stokKoduOptimizasyonu(code));
case "3": return ProductList.FirstOrDefault(v => stokKoduOptimizasyonu(v.EkAlan3) == stokKoduOptimizasyonu(code));
case "4": return ProductList.FirstOrDefault(v => stokKoduOptimizasyonu(v.EkAlan4) == stokKoduOptimizasyonu(code));
case "5": return ProductList.FirstOrDefault(v => stokKoduOptimizasyonu(v.EkAlan5) == stokKoduOptimizasyonu(code));
case "6": return ProductList.FirstOrDefault(v => stokKoduOptimizasyonu(v.EkAlan6) == stokKoduOptimizasyonu(code));
case "7": return ProductList.FirstOrDefault(v => stokKoduOptimizasyonu(v.EkAlan7) == stokKoduOptimizasyonu(code));
case "8": return ProductList.FirstOrDefault(v => stokKoduOptimizasyonu(v.EkAlan8) == stokKoduOptimizasyonu(code));
case "9": return ProductList.FirstOrDefault(v => stokKoduOptimizasyonu(v.EkAlan9) == stokKoduOptimizasyonu(code));
case "10": return ProductList.FirstOrDefault(v => stokKoduOptimizasyonu(v.EkAlan10) == stokKoduOptimizasyonu(code));
if (!String.IsNullOrEmpty(code) && !IsBarcode)
if (!String.IsNullOrEmpty(pazar))
Func<UrunYeni, bool> condition = (urun) =>
case "N11": return urun.sanalPazar_EXTRASKU_N11.ToLower().Replace(" ", "") == code.ToLower().Replace(" ", "");
case "TRND": return urun.sanalPazar_EXTRASKU_TRND.ToLower().Replace(" ", "") == code.ToLower().Replace(" ", "");
case "GG": return urun.sanalPazar_EXTRASKU_GG.ToLower().Replace(" ", "") == code.ToLower().Replace(" ", "");
case "HB": return urun.sanalPazar_EXTRASKU_HB.ToLower().Replace(" ", "") == code.ToLower().Replace(" ", "");
case "CSE": return urun.sanalPazar_EXTRASKU_CSE.ToLower().Replace(" ", "") == code.ToLower().Replace(" ", "");
case "PTT": return urun.sanalPazar_EXTRASKU_PTT.ToLower().Replace(" ", "") == code.ToLower().Replace(" ", "");
return ProductList.FirstOrDefault(x => condition(x));
var count = ProductList.Where(x => stokKoduOptimizasyonu(x.StokKod) == (stokKoduOptimizasyonu(code))).ToList();
if (count.GroupBy(a => a.ID).Count() <= 1)
return ProductList.FirstOrDefault(x => stokKoduOptimizasyonu(x.StokKod) == (stokKoduOptimizasyonu(code)));
return ProductList.FirstOrDefault(x => stokKoduOptimizasyonu2(x.StokKod) == (stokKoduOptimizasyonu2(code)));
else if (!String.IsNullOrEmpty(code) && IsBarcode)
return ProductList.FirstOrDefault(x => x.Barkodu == code);
else if (!String.IsNullOrEmpty(GGID))
return ProductList.FirstOrDefault(x => x.GittigidiyorID == GGID);
StringBuilder SQL = new StringBuilder();
SQL.Append(EticaretStatic.DbTabloSanalPazar);
if (!String.IsNullOrEmpty(code) && !IsBarcode)
SQL.AppendFormat(" WHERE Replacer(u.URUN_StokKod) = ('{0}') LIMIT 1", Eklenti2.Seo2(code));
SQL.AppendFormat(" WHERE u.URUN_ID={0} ", Eklenti2.intParser(code));
else if (!String.IsNullOrEmpty(code) && IsBarcode)
SQL.AppendFormat(" WHERE u.URUN_Barkodu = '{0}' LIMIT 1", code);
else if (!String.IsNullOrEmpty(code))
SQL.AppendFormat(" WHERE sn.Urun_GittigidiyorID='{0}' LIMIT 1", GGID);
if (!String.IsNullOrEmpty(code))
asticaret_demoEntities n = Eklenti2.ChangeEntityContext();
UrunYeni product = n.Database.SqlQuery<UrunYeni>(SQL.ToString()).FirstOrDefault();
isExists = n.urun_sanapazarbilgi.Count(b => b.URUN_ID == product.ID) == 1;
if (!isExists && product != null)
urun_sanapazarbilgi bilgi = new urun_sanapazarbilgi { URUN_ID = product.ID };
bilgi.URUN_GittigidiyorID = GGID;
n.urun_sanapazarbilgi.Add(bilgi);
public List<UrunYeni> ProductVariants(string AnaStokKodu, List<UrunYeni> allVariants = null, asticaret_demoEntities n = null)
return allVariants.Where(x => x.AnaStok.Trim() == AnaStokKodu.Trim()).ToList();
if (n == null) { n = Eklenti2.ChangeEntityContext(); isDispose = true; }
string SQL = "", AramaSQL = " WHERE URUN_Onay = 'Yayında' AND URUN_AnaStok='" + Eklenti2.InReplaceNormal(AnaStokKodu.Trim()) + "' ";
List<UrunYeni> ret = new List<UrunYeni>();
var _urunler = n.Database.SqlQuery<parametre>
"SELECT urun.URUN_ID 'key',StokKalanMiktar 'value' FROM urun "
).ToDictionary(x => x.key, x => x.value);
string _IDS = StokBirlestir(true, _urunler.Keys.ToList());
if (!String.IsNullOrEmpty(_IDS))
SQL = EticaretStatic.DbTabloSanalPazar + " where u.URUN_ID IN (" + _IDS + ");";
List<UrunYeni> _ur = n.Database.SqlQuery<UrunYeni>(SQL).ToList();
join y in _urunler on x.ID.ToString() equals y.Key
AlisFiyati = x.AlisFiyati,
BaslikAkakce = x.BaslikAkakce,
BaslikBilio = x.BaslikBilio,
BaslikCimri = x.BaslikCimri,
BaslikEptt = x.BaslikEptt,
AltBaslikGG = x.AltBaslikGG,
BaslikHepsiBurada = x.BaslikHepsiBurada,
BaslikMerchnat = x.BaslikMerchnat,
AltBaslikN11 = x.AltBaslikN11,
Fiyat_Eptt = x.Fiyat_Eptt,
Fiyat_Gittigidiyor = x.Fiyat_Gittigidiyor,
Fiyat_Hepsiburada = x.Fiyat_Hepsiburada,
Fiyat1Uzanti = x.Fiyat1Uzanti,
KargoFiyat = x.KargoFiyat,
NumuneFiyat = x.NumuneFiyat,
NumuneFiyat2 = x.NumuneFiyat2,
OzelKesimFiyat = x.OzelKesimFiyat,
OzelKesimFiyat2 = x.OzelKesimFiyat2,
Garantisuresi = x.Garantisuresi,
GittigidiyorCat = x.GittigidiyorCat,
GittigidiyorCatOzellik = x.GittigidiyorCatOzellik,
GittigidiyorID = x.GittigidiyorID,
HepsiburadaSKU = x.HepsiburadaSKU,
KategoriAdi = x.KategoriAdi,
ilgiliUrunler = x.ilgiliUrunler,
StokKalanMiktar = y.Value != null ? doubleParser(y.Value) : doubleParser(x.StokAdet),
HizliGonderi = x.HizliGonderi,
IadeEdilmeDurumu = x.IadeEdilmeDurumu,
KampanyaNotu = x.KampanyaNotu,
MetaDescription = x.MetaDescription,
YorumaKapali = x.YorumaKapali,
YayinTarih = x.YayinTarih,
SatisSayisi = x.SatisSayisi,
PerdeSistemiAktif = x.PerdeSistemiAktif,
PerdeSistemiDikimPayi = x.PerdeSistemiDikimPayi,
PerdeSistemiMetrekateFiyat = x.PerdeSistemiMetrekateFiyat,
SiparisSekli = x.SiparisSekli,
UcretsizKargo = x.UcretsizKargo,
TaksitSinirlama = x.TaksitSinirlama,
MiktarSecenek = x.MiktarSecenek,
TavsiyeUrunler = x.TavsiyeUrunler,
N11CatOzellik = x.N11CatOzellik,
N11ProBarkodu = x.N11ProBarkodu,
N11ProMinimumMiktar = x.N11ProMinimumMiktar,
N11ProCatOzellik = x.N11ProCatOzellik,
N11Pro_Fiyat = x.N11Pro_Fiyat,
N11ProBaslik = x.N11ProBaslik,
AmazonAsin = x.AmazonAsin,
AmazonBaslik = x.AmazonBaslik,
AmazonFiyat = x.AmazonFiyat,
AmazonOzellikXml = x.AmazonOzellikXml,
urun_ModanisaOzellik = x.urun_ModanisaOzellik
if(isDispose) n.Dispose();
public List<UrunYeni> GetAllProductVariants(List<string> sellerCode, asticaret_demoEntities n = null)
if (sellerCode.Count > 0)
if (n == null || (n != null && n.Database.Connection == null)) { n = Eklenti2.ChangeEntityContext(); isDispose = true; }
catch { n = Eklenti2.ChangeEntityContext(); isDispose = true; }
string SQL = EticaretStatic.DbTabloSanalPazar + " WHERE URUN_Onay = 'Yayında' AND (IFNULL(URUN_AnaStok,'') <> '' AND IFNULL(URUN_AnaStok,'0') <> '0' ) AND URUN_AnaStok IN (" + StokBirlestir(false, sellerCode) + ")";
List<UrunYeni> _variants = n.Database.SqlQuery<UrunYeni>(SQL).ToList();
if (isDispose) n.Dispose();
return new List<UrunYeni>();
public List<UrunYeni> GetAllProductVariantsByVariantStockCodes(List<string> variantStockCodes)
if (variantStockCodes.Count > 0)
using (asticaret_demoEntities n = new asticaret_demoEntities())
((IObjectContextAdapter)n).ObjectContext.CommandTimeout = 100;
string SQL = EticaretStatic.DbTabloSanalPazar + " WHERE URUN_Onay = 'Yayında' AND (IFNULL(URUN_AnaStok,'') <> '' AND IFNULL(URUN_AnaStok,'0') <> '0' ) AND URUN_StokKod IN (" + StokBirlestir(false, variantStockCodes) + ")";
List<UrunYeni> _variants = n.Database.SqlQuery<UrunYeni>(SQL).ToList();
return new List<UrunYeni>();
private List<recete> ProductRecipes = new List<recete>();
public List<string> IsRecipe(List<string> StockCode)
if (ProductRecipes.Count == 0)
asticaret_demoEntities n = Eklenti2.ChangeEntityContext();
ProductRecipes = n.recete.AsNoTracking().Where(x => x.MASTER != x.STOKKODU).ToList();
List<string> newStockList = new List<string>();
if (StockCode != null && StockCode.Count > 0)
for (int i = 0; i < StockCode.Count(); i++)
List<recete> recipe = ProductRecipes.Where(x => x.MASTER == StockCode[i]).ToList();
if (recipe != null && recipe.Count > 0)
foreach (recete itemRecipe in recipe)
newStockList.Add(itemRecipe.STOKKODU);
List<recete> masterrecipe = ProductRecipes.Where(x => x.STOKKODU == StockCode[i]).ToList();
if (masterrecipe.Count > 0)
foreach (recete itemRecipe in masterrecipe)
newStockList.Add(itemRecipe.MASTER);
if (newStockList.Count > 0)
foreach (string item in newStockList)
if (StockCode.FirstOrDefault(x => x == item) == null)
private List<sanalpazarozellik> SPMappingList = new List<sanalpazarozellik>();
public List<sanalpazarozellik> GetMappingList(asticaret_demoEntities n = null)
if (SPMappingList.Count == 0)
if (n == null) { n = Eklenti2.ChangeEntityContext(); isDispose = true; }
SPMappingList = n.sanalpazarozellik.ToList();
if (isDispose) n.Dispose();
private List<kategori> ColorList = new List<kategori>();
public List<kategori> GetCategoryColor()
asticaret_demoEntities n = Eklenti2.ChangeEntityContext();
ColorList = n.kategori.Where(x => x.KAT_Cins == "Renk").ToList();
private List<kategori> BodyList = new List<kategori>();
public List<kategori> GetCategoryBody()
asticaret_demoEntities n = Eklenti2.ChangeEntityContext();
BodyList = n.kategori.Where(x => x.KAT_Cins == "Beden").ToList();
public bool SetGGID(int PID, string SID)
asticaret_demoEntities n = Eklenti2.ChangeEntityContext();
int status = n.Database.ExecuteSqlCommand(String.Format("UPDATE urun_sanapazarbilgi SET URUN_GittigidiyorID={0} WHERE URUN_ID={1}", SID, PID));
if (n.urun_sanapazarbilgi.Count(b => b.URUN_ID == PID) == 0)
n.urun_sanapazarbilgi.Add(new urun_sanapazarbilgi { URUN_ID = PID, URUN_GittigidiyorID = SID });
public bool SetCargo(string sipNo, kargofirma cargo = null, int cargoId = 0, asticaret_demoEntities n1 = null)
bool _baglantiKapat = false;
n1 = Eklenti2.ChangeEntityContext();
status = n1.Database.ExecuteSqlCommand(String.Format("UPDATE siparistablosu SET KARGO_ID='{0}', KARGO_FIRMASI='{2}' WHERE SANALPAZAR_SIPNO='{1}'", cargo.KARGO_ID, sipNo, cargo.KARGO_Ad));
status = n1.Database.ExecuteSqlCommand(String.Format("UPDATE siparistablosu SET KARGO_ID='{0}' WHERE SANALPAZAR_SIPNO='{1}'", cargoId, sipNo));
public bool setEkAlan(string sipNo, string value, asticaret_demoEntities n1 = null)
if (String.IsNullOrEmpty(value)) return false;
bool _baglantiKapat = false;
n1 = Eklenti2.ChangeEntityContext();
status = n1.Database.ExecuteSqlCommand(String.Format("UPDATE siparistablosu SET EKALAN5='{0}' WHERE SANALPAZAR_SIPNO='{1}'", value, sipNo));
public bool SetCargoNumber(string sipNo, string cargoNumber, string cargoCompany = "", int cargoId = 0, asticaret_demoEntities n1 = null)
bool _baglantiKapat = false;
n1 = Eklenti2.ChangeEntityContext();
if (!String.IsNullOrEmpty(cargoCompany))
status = n1.Database.ExecuteSqlCommand(String.Format("UPDATE siparistablosu SET KARGO_NO='{0}', KARGO_FIRMASI='{2}', KARGO_ID={3} WHERE SANALPAZAR_SIPNO='{1}'", cargoNumber, sipNo, cargoCompany, cargoId));
status = n1.Database.ExecuteSqlCommand(String.Format("UPDATE siparistablosu SET KARGO_NO='{0}' WHERE SANALPAZAR_SIPNO='{1}'", cargoNumber, sipNo));
public bool SetCargoBarcode(string sipNo, string cargoBarcode, asticaret_demoEntities n1 = null)
bool _baglantiKapat = false;
n1 = Eklenti2.ChangeEntityContext();
if (!String.IsNullOrEmpty(cargoBarcode))
status = n1.Database.ExecuteSqlCommand(String.Format("UPDATE siparistablosu SET KARGO_BARKOD='{0}' WHERE SANALPAZAR_SIPNO='{1}'", cargoBarcode, sipNo));
public bool SetPromotionCode(string sipNo, string promotionCode, asticaret_demoEntities n1 = null)
bool _baglantiKapat = false;
n1 = Eklenti2.ChangeEntityContext();
if (!String.IsNullOrEmpty(promotionCode))
status = n1.Database.ExecuteSqlCommand(String.Format("UPDATE siparistablosu SET PROMOSYON_KODU='{0}' WHERE SANALPAZAR_SIPNO='{1}'", promotionCode, sipNo));
public bool SetCampaignNumber(string sipNo, string campaignNumber, asticaret_demoEntities n1 = null)
bool _baglantiKapat = false;
n1 = Eklenti2.ChangeEntityContext();
int status = n1.Database.ExecuteSqlCommand(String.Format("UPDATE siparistablosu SET PROMOSYON_KODU='{0}' WHERE SANALPAZAR_SIPNO='{1}'", campaignNumber, sipNo));
public double Price(UrunYeni item, string type, Dictionary<string, string> settings, List<kategoriyeni> categoryPriceRateList = null, bool listPrice = false, bool discount = true)
double Kur = (item.Fiyat1Uzanti != "TL" ? KurGetir(item.Fiyat1Uzanti) : 1);
double f1 = doubleParser(item.Fiyat1);
double f2 = doubleParser(item.Fiyat2);
double f3 = doubleParser(item.Fiyat3);
double f4 = doubleParser(item.Fiyat4);
double f5 = doubleParser(item.Fiyat5);
double f6 = doubleParser(item.Fiyat6);
double f7 = doubleParser(item.Fiyat7);
double f8 = doubleParser(item.Fiyat8);
double f9 = doubleParser(item.Fiyat9);
double f10 = doubleParser(item.Fiyat10);
double falis = doubleParser(item.AlisFiyati);
if (settings.ContainsKey("TAX") && settings["TAX"] == "true")
if (Eklenti2.DBInt(this.ayar.AYAR_Fiyat)) KDVCarpan = 1;
else KDVCarpan = 1 + (doubleParser(item.Kdv) / 100);
else if (!settings.ContainsKey("TAX") || (settings.ContainsKey("TAX") && settings["TAX"] == "false"))
if (!Eklenti2.DBInt(this.ayar.AYAR_Fiyat)) KDVCarpan = 1;
else KDVCarpan = 1 / (1 + (doubleParser(item.Kdv) / 100));
if (type == "N11") fsp = doubleParser(item.Fiyat_N11);
else if (type == "GITTIGIDIYOR") fsp = doubleParser(item.Fiyat_Gittigidiyor);
else if (type == "HEPSIBURADA") fsp = doubleParser(item.Fiyat_Hepsiburada);
else if (type == "EPTTAVM") fsp = doubleParser(item.Fiyat_Eptt);
else if (type == "TRENDYOL")
if (!String.IsNullOrEmpty(item.TrendyolOzellik))
SanalPazarObj.TrendyolAsProperties trn = JsonConvert.DeserializeObject<SanalPazarObj.TrendyolAsProperties>(item.TrendyolOzellik);
Console.WriteLine(ex.StackTrace);
else if (type == "N11PRO") fsp = doubleParser(item.N11Pro_Fiyat);
else if (type == "AMAZON") fsp = doubleParser(item.AmazonFiyat);
string rateAmount = String.Empty;
string priceProcess = String.Empty;
string categoryExtra = String.Empty;
string generalExtra = settings.ContainsKey("EXTRAPRICE") ? settings["EXTRAPRICE"] : String.Empty;
if (categoryPriceRateList != null)
var productCategory = item.Kategori.Split('|').First().Split(',').Last();
var categoryPriceRate = categoryPriceRateList.FirstOrDefault(x => x.Kodu == productCategory);
if (categoryPriceRate != null)
var rateObj = JsonConvert.DeserializeObject<Dictionary<string, SanalPazarObj.ExtraParameter>>(categoryPriceRate.SanalPazarKarOrani);
if (rateObj != null && rateObj.ContainsKey(type) && !String.IsNullOrEmpty(rateObj[type].value))
categoryVal = doubleParser(rateObj[type].value);
priceProcess = rateObj[type].key;
rateAmount = rateObj[type].option;
categoryExtra = rateObj[type].extra;
double val = doubleParser(item.Indirim);
if (categoryVal != -1 || (doubleParser(settings.ContainsKey("PRICERATE") ? settings["PRICERATE"] ?? "0" : "0") > 0))
val = categoryVal != -1 ? categoryVal : doubleParser(settings["PRICERATE"] ?? "0");
if (categoryVal == -1) rateAmount = !settings.ContainsKey("RATEAMOUNT") ? "true" : settings["RATEAMOUNT"];
if (categoryVal != -1 ? (priceProcess == "true") : (settings["PRICEPROCESS"] == "true"))
f1 = rateAmount == "true" || rateAmount == null ? (f1 + f1 / 100 * val) : (f1 + val);
f2 = rateAmount == "true" || rateAmount == null ? (f2 + f2 / 100 * val) : (f2 + val);
f3 = rateAmount == "true" || rateAmount == null ? (f3 + f3 / 100 * val) : (f3 + val);
f4 = rateAmount == "true" || rateAmount == null ? (f4 + f4 / 100 * val) : (f4 + val);
f5 = rateAmount == "true" || rateAmount == null ? (f5 + f5 / 100 * val) : (f5 + val);
f6 = rateAmount == "true" || rateAmount == null ? (f6 + f6 / 100 * val) : (f6 + val);
f7 = rateAmount == "true" || rateAmount == null ? (f7 + f7 / 100 * val) : (f7 + val);
f8 = rateAmount == "true" || rateAmount == null ? (f8 + f8 / 100 * val) : (f8 + val);
f9 = rateAmount == "true" || rateAmount == null ? (f9 + f9 / 100 * val) : (f9 + val);
f10 = rateAmount == "true" || rateAmount == null ? (f10 + f10 / 100 * val) : (f10 + val);
falis = rateAmount == "true" || rateAmount == null ? (falis + falis / 100 * val) : (falis + val);
else if ((categoryVal != -1 ? (priceProcess == "false") : (settings["PRICEPROCESS"] == "false")) && discount)
f1 = rateAmount == "true" || rateAmount == null ? (f1 - f1 / 100 * val) : (f1 - val);
f2 = rateAmount == "true" || rateAmount == null ? (f2 - f2 / 100 * val) : (f2 - val);
f3 = rateAmount == "true" || rateAmount == null ? (f3 - f3 / 100 * val) : (f3 - val);
f4 = rateAmount == "true" || rateAmount == null ? (f4 - f4 / 100 * val) : (f4 - val);
f5 = rateAmount == "true" || rateAmount == null ? (f5 - f5 / 100 * val) : (f5 - val);
f6 = rateAmount == "true" || rateAmount == null ? (f6 - f6 / 100 * val) : (f6 - val);
f7 = rateAmount == "true" || rateAmount == null ? (f7 - f7 / 100 * val) : (f7 - val);
f8 = rateAmount == "true" || rateAmount == null ? (f8 - f8 / 100 * val) : (f8 - val);
f9 = rateAmount == "true" || rateAmount == null ? (f9 - f9 / 100 * val) : (f9 - val);
f10 = rateAmount == "true" || rateAmount == null ? (f10 - f10 / 100 * val) : (f10 - val);
falis = rateAmount == "true" || rateAmount == null ? (falis - falis / 100 * val) : (falis - val);
if (type == "EPTTAVM" && Eklenti2.DBInt(this.ayar.AYAR_Fiyat))
f1 = ((f1 * 100) / (100 + doubleParser(item.Kdv)));
f2 = ((f2 * 100) / (100 + doubleParser(item.Kdv)));
f3 = ((f3 * 100) / (100 + doubleParser(item.Kdv)));
f4 = ((f4 * 100) / (100 + doubleParser(item.Kdv)));
f5 = ((f5 * 100) / (100 + doubleParser(item.Kdv)));
f6 = ((f6 * 100) / (100 + doubleParser(item.Kdv)));
f7 = ((f7 * 100) / (100 + doubleParser(item.Kdv)));
f8 = ((f8 * 100) / (100 + doubleParser(item.Kdv)));
f9 = ((f9 * 100) / (100 + doubleParser(item.Kdv)));
f10 = ((f10 * 100) / (100 + doubleParser(item.Kdv)));
falis = ((falis * 100) / (100 + doubleParser(item.Kdv)));
item.Indirim = (settings["PRICEPROCESS"] == "true") ? 0 : val;
if (listPrice && settings.ContainsKey("LISTPRICE"))
if (settings["LISTPRICE"] == "1") result = (f1 * KDVCarpan * Kur);
else if (settings["LISTPRICE"] == "2") result = (f2 * KDVCarpan * Kur);
else if (settings["LISTPRICE"] == "3") result = (f3 * KDVCarpan * Kur);
else if (settings["LISTPRICE"] == "4") result = (f4 * KDVCarpan * Kur);
else if (settings["LISTPRICE"] == "5") result = (fsp);
else if (settings["LISTPRICE"] == "6") result = (falis * KDVCarpan * Kur);
else if (settings["LISTPRICE"] == "7") result = (f5 * KDVCarpan * Kur);
else if (settings["LISTPRICE"] == "8") result = (f6 * KDVCarpan * Kur);
else if (settings["LISTPRICE"] == "9") result = (f7 * KDVCarpan * Kur);
else if (settings["LISTPRICE"] == "10") result = (f8 * KDVCarpan * Kur);
else if (settings["LISTPRICE"] == "11") result = (f9 * KDVCarpan * Kur);
else if (settings["LISTPRICE"] == "12") result = (f10 * KDVCarpan * Kur);
else result = (f1 * KDVCarpan * Kur);
if (settings["PRICETYPE"] == "1") result = (f1 * KDVCarpan * Kur);
else if (settings["PRICETYPE"] == "2") result = (f2 * KDVCarpan * Kur);
else if (settings["PRICETYPE"] == "3") result = (f3 * KDVCarpan * Kur);
else if (settings["PRICETYPE"] == "4") result = (f4 * KDVCarpan * Kur);
else if (settings["PRICETYPE"] == "5") result = (fsp);
else if (settings["PRICETYPE"] == "6") result = (falis * KDVCarpan * Kur);
else if (settings["PRICETYPE"] == "7") result = (f5 * KDVCarpan * Kur);
else if (settings["PRICETYPE"] == "8") result = (f6 * KDVCarpan * Kur);
else if (settings["PRICETYPE"] == "9") result = (f7 * KDVCarpan * Kur);
else if (settings["PRICETYPE"] == "10") result = (f8 * KDVCarpan * Kur);
else if (settings["PRICETYPE"] == "11") result = (f9 * KDVCarpan * Kur);
else if (settings["PRICETYPE"] == "12") result = (f10 * KDVCarpan * Kur);
else result = (f1 * KDVCarpan * Kur);
if (discount && item.Indirim > 0)
result = doubleParser(String.Format("{0:0.##}", (result - ((result / 100) * item.Indirim))));
if (doubleParser(categoryExtra) > 0)
result = result + doubleParser(categoryExtra);
else if (settings.ContainsKey("EXTRAPRICE") && doubleParser(settings["EXTRAPRICE"]) > 0)
result = result + doubleParser(settings["EXTRAPRICE"]);
return double.Parse(string.Format("{0:0.##}", result));
public decimal PriceDiscountApply(decimal price, decimal discountRate)
return (price - ((price / 100) * discountRate));
public decimal GetDiscountRate(decimal oldPrice, decimal lastPrice)
if (oldPrice != 0 && lastPrice != 0)
return ((oldPrice - lastPrice) / oldPrice) * 100;
private List<dovizkurlari> Kurlar = new List<dovizkurlari>();
public double KurGetir(string DovizBirimi)
asticaret_demoEntities n = Eklenti2.ChangeEntityContext();
this.Kurlar = n.dovizkurlari.OrderBy(x => x.Sira).ToList();
dovizkurlari doviz = this.Kurlar.FirstOrDefault(x => x.Simge == (!String.IsNullOrEmpty(DovizBirimi) ? DovizBirimi : "TL"));
DovizHesap = (this.ayar.AYAR_DovizAlisSatis == "Alış") ? doviz.Alis.ToString() : doviz.Satis.ToString();
return doubleParser(DovizHesap);
private List<SanalPazarObj.SiparisSP> _Siparisler = new List<SanalPazarObj.SiparisSP>();
public List<SanalPazarObj.SiparisSP> Siparisler(DateTime lastOrderDate, string Type, bool refresh = false)
if (!String.IsNullOrEmpty(Type))
if (this._Siparisler.Count == 0 || this._Siparisler.First().SANALPAZAR_TIPI != Type || refresh)
asticaret_demoEntities n = Eklenti2.ChangeEntityContext();
this._Siparisler = n.siparistablosu.Where(x => x.SANALPAZAR_TIPI == Type && x.SANALPAZAR_SIPNO != null).Select(x =>
new SanalPazarObj.SiparisSP
SIPARIS_DURUMU = (short)x.SIPARIS_DURUMU,
SANALPAZAR_SIPNO = x.SANALPAZAR_SIPNO,
SANALPAZAR_TIPI = x.SANALPAZAR_TIPI,
SANALPAZAR_PAKETID = x.EKALAN5,
SIPARIS_TARIHI = (DateTime)x.SIPARIS_TARIHI,
SANALPAZAR_KARGONO = x.KARGO_NO,
SANALPAZAR_PROMOSYONKODU = x.PROMOSYON_KODU,
SIPARIS_MUHASEBE_DURUMU = (sbyte)x.MUHASEBEYE_GONDERILDI,
totalHareketSayisi = n.siparistablosuhr.Count(v => v.SIPARIS_NO == x.SIPARIS_NO),
KARGO_ID = x.KARGO_ID ?? 0,
KARGO_BARKOD = x.KARGO_BARKOD,
public void AddOrder(SanalPazarObj.SiparisSP Sip)
this._Siparisler.Add(Sip);
public void SiparisDurum(long ID, short durum)
asticaret_demoEntities n = Eklenti2.ChangeEntityContext();
n.Database.ExecuteSqlCommand(string.Concat("UPDATE siparistablosu SET SIPARIS_DURUMU=", durum, " WHERE BLKODU=", ID));
public void SiparisDurum(long ID, short durum, short muhasebeyeGonderildi)
asticaret_demoEntities n = Eklenti2.ChangeEntityContext();
n.Database.ExecuteSqlCommand(string.Concat("UPDATE siparistablosu SET MUHASEBEYE_GONDERILDI=", muhasebeyeGonderildi, ", SIPARIS_DURUMU=", durum, " WHERE BLKODU=", ID));
public void SiparisDurum(List<string> SQLList)
MySqlConnection cnn = Eklenti2.EntityMysqlCon();
MySqlTransaction tr = cnn.BeginTransaction();
MySqlCommand cmd = new MySqlCommand
foreach (string item in SQLList)
public bool SiparisKontrol(string SiparisKodu, string Tipi, DateTime lastOrderDate, string PaketID = "", bool refresh = false)
if (String.IsNullOrEmpty(SiparisKodu)) return false;
return this.Siparisler(lastOrderDate, Tipi, refresh).Count(x => x.SANALPAZAR_SIPNO.Trim().ToLower() == SiparisKodu.Trim().ToLower() && x.SANALPAZAR_TIPI.Trim() == Tipi && x.SANALPAZAR_PAKETID.Trim().ToLower() == PaketID.Trim().ToLower()) > 0;
List<SanalPazarObj.SiparisSP> liste = this.Siparisler(lastOrderDate, Tipi, refresh).Where(x => x.SANALPAZAR_SIPNO.Trim().ToLower() == SiparisKodu.Trim().ToLower() && x.SANALPAZAR_TIPI.Trim().ToLower() == Tipi.Trim().ToLower()).ToList();
public int StockCount(UrunYeni product)
int count = (product != null && product.StokKalanMiktar != null ? Eklenti2.intParser(product.StokKalanMiktar) : Eklenti2.intParser(product.StokAdet));
if (count == 0 && Eklenti2.boolParser(Eklenti2.GelistiriciAyar("SANALPAZARMINSTOK"))) return 10;
private List<kargofirma> Cargos = new List<kargofirma>();
public kargofirma CargoSearch(string param)
asticaret_demoEntities n = Eklenti2.ChangeEntityContext();
this.Cargos = n.kargofirma.AsNoTracking().ToList();
if (!String.IsNullOrEmpty(param))
var detail = this.Cargos.FirstOrDefault(x => x.KARGO_Ad.ToLower() == param.ToLower() || x.KARGO_Ad.ToLower().Contains(param.ToLower()) || param.ToLower().Contains(x.KARGO_Ad.ToLower()));
if (detail != null && detail.KARGO_ID > 0)
public kargofirma CargoSearchAkakce(string param)
asticaret_demoEntities n = Eklenti2.ChangeEntityContext();
this.Cargos = n.kargofirma.AsNoTracking().ToList();
if (!String.IsNullOrEmpty(param))
var detail = this.Cargos.FirstOrDefault(x => x.KARGO_Ad.ToLower() == param.ToLower() || x.KARGO_Ad.ToLower().Contains(param.ToLower()) || param.ToLower().Contains(x.KARGO_Ad.ToLower()) || param.Contains(x.KARGO_VergiNu));
if (detail != null && detail.KARGO_ID > 0)
public string GetCargoCompanyWithTrendyol(string code)
if (!String.IsNullOrWhiteSpace(code))
switch (code.Substring(0, 3))
case "725": return "Yurtiçi Kargo";
case "726": return "Aras Kargo";
case "727": return "Sürat Kargo";
case "728": return "MNG Kargo";
case "984": return "Horoz Lojistik";
case "733": return "Trendyol Express";
case "734": return "PTT Kargo";
default: return String.Empty;
public string GetCargoCompanyWithTrendyolV2(string cargoName)
if (!String.IsNullOrWhiteSpace(cargoName))
case "HOROZMP": return "6";
case "SURATMP": return "9";
case "UPSMP": return "12";
case "PTTINT": return "15";
default: return String.Empty;
public List<SanalPazarObj.SpecialProp> GetProductPropertyList(string type, asticaret_demoEntities n = null)
List<SanalPazarObj.SpecialProp> list = new List<SanalPazarObj.SpecialProp>();
if (n == null) { n = Eklenti2.ChangeEntityContext(); isDispose = true; }
oyc.sp_n11 AS 'property',
oyr.sp_n11 AS 'category',
uo.OZELLIK_UrunID AS 'productID'
LEFT JOIN ozellikyeni oyc ON (oyc.Ad = uo.OZELLIK_Text AND oyc.Iliski=uo.OZELLIK_Grup)
LEFT JOIN ozellikyeni oyr ON (oyr.Kodu = oyc.Iliski)
LEFT JOIN ozelliksp osp ON (osp.Ozellik = oyc.ID AND osp.value = uo.OZELLIK_Value)
WHERE osp.n11 IS NOT NULL
AND oyc.ID IS NOT NULL AND oyc.sp_n11 IS NOT NULL
AND oyr.ID IS NOT NULL AND oyr.sp_n11 IS NOT NULL";
list = n.Database.SqlQuery<SanalPazarObj.SpecialProp>(SQL).ToList();
else if (type == "GITTIGIDIYOR")
uo.OZELLIK_UrunID AS 'productID'
LEFT JOIN ozellikyeni oyc ON (oyc.Ad = uo.OZELLIK_Text AND oyc.Iliski=uo.OZELLIK_Grup)
LEFT JOIN ozellikyeni oyr ON (oyr.Kodu = oyc.Iliski)
LEFT JOIN ozelliksp osp ON (osp.Ozellik = oyc.ID AND osp.value = uo.OZELLIK_Value)
oyc.ID IS NOT NULL AND oyc.sp_gg IS NOT NULL
AND oyr.ID IS NOT NULL AND oyr.sp_gg IS NOT NULL";
list = n.Database.SqlQuery<SanalPazarObj.SpecialProp>(SQL).ToList();
else if (type == "EPTTAVM")
oyr.sp_eppt AS 'category',
uo.OZELLIK_UrunID AS 'productID'
LEFT JOIN ozellikyeni oyc ON (oyc.Ad = uo.OZELLIK_Text)
LEFT JOIN ozellikyeni oyr ON (oyr.Kodu = oyc.Iliski)
WHERE oyr.sp_eppt IS NOT NULL";
list = n.Database.SqlQuery<SanalPazarObj.SpecialProp>(SQL).ToList();
if(isDispose) n.Dispose();
public SanalPazarObj.SpecialSP ProductProperty(List<SanalPazarObj.SpecialProp> list, string type, int productID)
var obj = new SanalPazarObj.SpecialSP();
if (list != null && list.Count > 0)
list = list.Where(x => x.productID == productID).ToList();
if (type == "GITTIGIDIYOR")
List<com.gittigidiyor.dev.specType> props = new List<com.gittigidiyor.dev.specType>();
var service = ((SanalPazarObj.SPSerFeature)new GG().Gittigidiyor_Ozellik(list.First().category, 0).ObjService).features;
foreach (var item in list)
var upp = service.FirstOrDefault(x => x.id == item.property);
if (upp == null) continue;
var sub = upp.items.FirstOrDefault(x => x.id == item.item);
if (sub == null) continue;
com.gittigidiyor.dev.specType tmp = new com.gittigidiyor.dev.specType();
obj.category = list.First().category;
List<ProductAttributeRequest> props = new List<ProductAttributeRequest>();
var service = ((SanalPazarObj.SPSerFeature)new N11().N11_Ozellik(list.First().category, 0).ObjService).features;
foreach (var item in list)
var upp = service.FirstOrDefault(x => x.id == item.property);
if (upp == null) continue;
var sub = upp.items.FirstOrDefault(x => x.id == item.item);
if (sub == null) continue;
ProductAttributeRequest tmp = new ProductAttributeRequest();
obj.category = list.First().category;
else if (type == "EPTTAVM")
obj.category = list.First().category;
private IEnumerable<SanalPazarObj.ProductProperties> propList = new List<SanalPazarObj.ProductProperties>();
public IEnumerable<SanalPazarObj.ProductProperties> GetAllProdutProperties(asticaret_demoEntities n = null)
if (propList.Count() == 0)
string SQL = @"SELECT OZELLIK_Text, OZELLIK_Value, OZELLIK_UrunID FROM urunozellik";
if (n == null) { n = Eklenti2.ChangeEntityContext(); isDispose = true; }
propList = n.Database.SqlQuery<SanalPazarObj.ProductProperties>(SQL).ToList();
if (isDispose) n.Dispose();
public IEnumerable<SanalPazarObj.ProductProperties> ProductPropertyTable(int UID)
return propList.Where(x => x.OZELLIK_UrunID == UID).ToList();
public string ProductPropertyHtmlTable(int ProductID)
string stTable = @"<table border='1' cellpadding='1' cellspacing='1' style='width: 500px; '>
IEnumerable<SanalPazarObj.ProductProperties> propList = ProductPropertyTable(ProductID);
foreach (var propItem in propList)
if (!String.IsNullOrEmpty(propItem.OZELLIK_Text) && !String.IsNullOrEmpty(propItem.OZELLIK_Value))
rContent = rContent.Replace("[PropName]", propItem.OZELLIK_Text);
rContent = rContent.Replace("[PropVal]", propItem.OZELLIK_Value);
stTable = stTable.Replace("[Content]", stContent);
public List<string> GetFoesBrands(string type)
asticaret_demoEntities n = Eklenti2.ChangeEntityContext();
sanalpazarozellik spo = new sanalpazarozellik();
if (type == "GG") spo = n.sanalpazarozellik.FirstOrDefault(x => !String.IsNullOrEmpty(x.sanalPazarGGYasakliMarkalar));
if (type == "EPTT") spo = n.sanalpazarozellik.FirstOrDefault(x => !String.IsNullOrEmpty(x.sanalPazarEPTTYasakliMarkalar));
if (type == "N11") spo = n.sanalpazarozellik.FirstOrDefault(x => !String.IsNullOrEmpty(x.sanalPazarN11YasakliMarkalar));
if (type == "TRENDYOL") spo = n.sanalpazarozellik.FirstOrDefault(x => !String.IsNullOrEmpty(x.sanalPazarTRNYasakliMarkalar));
if (type == "AMAZON") spo = n.sanalpazarozellik.FirstOrDefault(x => !String.IsNullOrEmpty(x.sanalPazarAMZYasakliMarkalar));
if (type == "N11PRO") spo = n.sanalpazarozellik.FirstOrDefault(x => !String.IsNullOrEmpty(x.sanalPazarN11PROYasakliMarkalar));
if (type == "HEPSIBURADAV2") spo = n.sanalpazarozellik.FirstOrDefault(x => !String.IsNullOrEmpty(x.sanalPazarHBYasakliMarkalar));
if (type == "CICEKSEPETI") spo = n.sanalpazarozellik.FirstOrDefault(x => !String.IsNullOrEmpty(x.sanalPazarCSYasakliMarkalar));
if (type == "MODANISA") spo = n.sanalpazarozellik.FirstOrDefault(x => !String.IsNullOrEmpty(x.sanalPazarModanisaYasakliMarkalar));
if (type == "GG" && spo.sanalPazarGGYasakliMarkalar != null) return spo.sanalPazarGGYasakliMarkalar.Split(',').ToList();
else if (type == "EPTT" && spo.sanalPazarEPTTYasakliMarkalar != null) return spo.sanalPazarEPTTYasakliMarkalar.Split(',').ToList();
else if (type == "N11" && spo.sanalPazarN11YasakliMarkalar != null) return spo.sanalPazarN11YasakliMarkalar.Split(',').ToList();
else if (type == "TRENDYOL" && spo.sanalPazarTRNYasakliMarkalar != null) return spo.sanalPazarTRNYasakliMarkalar.Split(',').ToList();
else if (type == "AMAZON" && spo.sanalPazarAMZYasakliMarkalar != null) return spo.sanalPazarAMZYasakliMarkalar.Split(',').ToList();
else if (type == "N11PRO" && spo.sanalPazarN11PROYasakliMarkalar != null) return spo.sanalPazarN11PROYasakliMarkalar.Split(',').ToList();
else if (type == "HEPSIBURADAV2" && spo.sanalPazarHBYasakliMarkalar != null) return spo.sanalPazarHBYasakliMarkalar.Split(',').ToList();
else if (type == "CICEKSEPETI" && spo.sanalPazarCSYasakliMarkalar != null) return spo.sanalPazarCSYasakliMarkalar.Split(',').ToList();
else if (type == "MODANISA" && spo.sanalPazarModanisaYasakliMarkalar != null) return spo.sanalPazarModanisaYasakliMarkalar.Split(',').ToList();
return new List<string>();
public List<string> GetSpecialTabID(string type = "")
asticaret_demoEntities n = Eklenti2.ChangeEntityContext();
List<string> tabID = new List<string>();
if (type == "GG") type = "SanalPazarGG";
else if (type == "N11") type = "SanalPazarN11";
else if (type == "EPTT") type = "SanalPazarEPTT";
else if (type == "TRENDYOL") type = "SanalPazarTRENDYOL";
else if (type == "N11PRO") type = "SanalPazarN11Pro";
else if (type == "AMAZON") type = "SanalPazarAMAZON";
else if (type == "EVIDEA") type = "SanalPazarEVIDEA";
else if (type == "HEPSIBURADAV2") type = "SanalPazarHEPSIBURADAV2";
else if (type == "CICEKSEPETI") type = "SanalPazarCicekSepeti";
else if (type == "MODANISA") type = "SanalPazarMODANISA";
else if (type == "FLO") type = "SanalPazarFLO";
ozelsekmeleryeni osy = n.ozelsekmeleryeni.FirstOrDefault(x => x.Tipi == type);
tabID = osy.Urunler.Split(',').ToList();
return (long)(DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1))).TotalMilliseconds;
public DateTime GetDateTime(long TimeStamp)
System.DateTime dtDateTime = new DateTime(1970, 1, 1, 0, 0, 0, 0, System.DateTimeKind.Utc);
dtDateTime = dtDateTime.AddMilliseconds(TimeStamp).ToLocalTime();
AsLog("GetDateTime Hata:", ex);
public bool TaskDateCalc(Dictionary<string, string> setting)
if (!setting.ContainsKey("UPDATEPERIOD")) setting.Add("UPDATEPERIOD", "0");
if (!setting.ContainsKey("TASKDATE")) setting.Add("TASKDATE", DateTime.Now.AddYears(-10).ToShortDateString());
else if (setting["TASKDATE"] == "0") setting["TASKDATE"] = DateTime.Now.AddYears(-10).ToShortDateString();
TimeSpan ts = (DateTime.Now - Convert.ToDateTime(setting["TASKDATE"]));
if (String.IsNullOrEmpty(setting["UPDATEPERIOD"])) return false;
else if (setting["UPDATEPERIOD"].Contains("d") && Convert.ToInt32(ts.TotalDays) >= Convert.ToInt32(setting["UPDATEPERIOD"].Replace("d", String.Empty))) return true;
else if (setting["UPDATEPERIOD"].Contains("h") && Convert.ToInt32(ts.TotalHours) >= Convert.ToInt32(setting["UPDATEPERIOD"].Replace("h", String.Empty))) return true;
public List<kategoriyeni> GetProductCategories()
var n = Eklenti2.ChangeEntityContext();
var categoryList = n.kategoriyeni.Where(x => !String.IsNullOrEmpty(x.SanalPazarKarOrani) && x.SanalPazarKarOrani.Trim() != "0").ToList();
public string TelNumberControl(string tel)
if (tel != null && tel.Trim() != "")
tel = tel.Replace(" ", "").Replace("-", "").Trim();
if (tel.Substring(0, 1) != "0" && tel.Substring(0, 1) != "+" && tel.Substring(0, 1) != "9")
catch (Exception ex) { AsLog("TelNumberControl Hata:", ex); }
public double doubleParser(object _Value)
if (_Value != null && _Value.ToString() != "")
try { rd = Convert.ToDouble(_Value.ToString()); }
AsLog("doubleParser Hata:", ex);
public string StripHTML(string input)
if (!String.IsNullOrEmpty(input))
HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
doc.DocumentNode.Descendants()
.Where(n => n.Name.ToLower() == "script" || n.Name.ToLower() == "style" || n.Name.ToLower() == "meta")
.ForEach(n => n.Remove());
var result = doc.DocumentNode.InnerHtml;
result = HttpContext.Current.Server.HtmlDecode(System.Text.RegularExpressions.Regex.Replace(result, "<.*?>|(?<=<[^>]*)", String.Empty).Replace("\r\n\r\n", ""));
if (result.Length > 1900)
result = result.Substring(0, 1900);
public string ImageResize(string url, string width, string height)
if (!String.IsNullOrEmpty(url))
return url.Replace(Eklenti2.SiteResimKok, String.Format("/thumb.ashx?width={0}&height={1}&Watermark=false&Resim={2}", width, height, Eklenti2.SiteResimKok));
public bool Status { get; set; }
public string Msg { get; set; }
public Dictionary<string, int> RtObject { get; set; }
public class MyWebClient : WebClient
public int Timeout { get; set; }
public MyWebClient() : this(60000) { }
public MyWebClient(int timeout)
protected override WebRequest GetWebRequest(Uri address)
var request = base.GetWebRequest(address);
request.Timeout = this.Timeout;
#region SanalPazar Eşleştirme Metodları
public enum typeofFeature { Color, Body };
public bool removeBodyColorMatchingBySanalpazarOzellik(string catID, typeofFeature feature, string vmType, string name, string val)
using (asticaret_demoEntities n = new asticaret_demoEntities())
sanalpazarozellik objFeature = n.sanalpazarozellik.FirstOrDefault(c => c.sanalPazarAkinsoftKategori == catID);
Dictionary<string, string> vsObject = null;
vsObject = (feature == typeofFeature.Color) ?
JsonConvert.DeserializeObject<Dictionary<string, string>>(objFeature.sanalPazarGGRenk) :
JsonConvert.DeserializeObject<Dictionary<string, string>>(objFeature.sanalPazarGGBeden);
if (feature == typeofFeature.Color)
objFeature.sanalPazarGGRenk = vsObject.SerializeObject();
objFeature.sanalPazarGGBeden = vsObject.SerializeObject();
vsObject = (feature == typeofFeature.Color) ?
JsonConvert.DeserializeObject<Dictionary<string, string>>(objFeature.sanalPazarTRNRenk) :
JsonConvert.DeserializeObject<Dictionary<string, string>>(objFeature.sanalPazarTRNBeden);
if (feature == typeofFeature.Color)
objFeature.sanalPazarTRNRenk = vsObject.SerializeObject();
objFeature.sanalPazarTRNBeden = vsObject.SerializeObject();
vsObject = (feature == typeofFeature.Color) ?
JsonConvert.DeserializeObject<Dictionary<string, string>>(objFeature.sanalPazarN11Renk) :
JsonConvert.DeserializeObject<Dictionary<string, string>>(objFeature.sanalPazarN11Beden);
if (feature == typeofFeature.Color)
objFeature.sanalPazarN11Renk = vsObject.SerializeObject();
objFeature.sanalPazarN11Beden = vsObject.SerializeObject();
Eklenti2.DebugLog(ex.Message);
public class SanalPazarZamanlayici
public General zamanlayici = null;
public SanalPazarZamanlayici()
if (HttpContext.Current == null)
context = Eklenti2.FakeHttpContext();
context = HttpContext.Current;
zamanlayici = ReadAllText();
public General ReadAllText()
DirectoryInfo Dir = new DirectoryInfo(context.Server.MapPath("/Temp/VIRTUALMARKETLOGS"));
Directory.CreateDirectory(context.Server.MapPath("/Temp/VIRTUALMARKETLOGS"));
File.SetAttributes(context.Server.MapPath("/Temp/VIRTUALMARKETLOGS"), FileAttributes.Normal);
var txtFilePath = context.Server.MapPath("/Temp/VIRTUALMARKETLOGS/SanalPazarZamanlayici.txt");
if (File.Exists(txtFilePath))
string textMightError = System.IO.File.ReadAllText(txtFilePath);
var generalMightError = JsonConvert.DeserializeObject<General>(textMightError);
if (generalMightError == null) throw new Exception("Cannot be Null");
return generalMightError;
using (var tw = new StreamWriter(txtFilePath, false))
General gnl = new General
TrendyolOrders = new TrendyolOrders
Cancelled = DateTime.Now,
Delivered = DateTime.Now,
UnDelivered = DateTime.Now
tw.Write(JsonConvert.SerializeObject(gnl));
string text = System.IO.File.ReadAllText(txtFilePath);
var general = JsonConvert.DeserializeObject<General>(text);
public General WriteText(TrendyolOrders _trendyol)
var txtFilePath = context.Server.MapPath("/Temp/VIRTUALMARKETLOGS/SanalPazarZamanlayici.txt");
using (var tw = new StreamWriter(txtFilePath, false))
General gnl = new General
TrendyolOrders = _trendyol
tw.Write(JsonConvert.SerializeObject(gnl));
public TrendyolOrders TrendyolOrders { get; set; }
public class TrendyolOrders
public DateTime Created { get; set; }
public DateTime Shipped { get; set; }
public DateTime Cancelled { get; set; }
public DateTime Delivered { get; set; }
public DateTime UnDelivered { get; set; }
public class SanalPazarObj
public class VMCategories
public List<param> values { get; set; }
public int totalCount { get; set; }
public int totalPage { get; set; }
public int currentPage { get; set; }
public class SiparisListesi
public long ID { get; set; }
public string packageNumber { get; set; }
public string recipientName { get; set; }
public string phoneNumber { get; set; }
public string islem { get; set; }
public string id { get; set; }
public string status { get; set; }
public string customerId { get; set; }
public DateTime orderDate { get; set; }
public DateTime? unpackedDate { get; set; }
public string cargoCompany { get; set; }
public string barcode { get; set; }
public string packageNumber { get; set; }
public string shippingAddressDetail { get; set; }
public string recipientName { get; set; }
public string shippingCountryCode { get; set; }
public string shippingDistrict { get; set; }
public string shippingCity { get; set; }
public string shippingTown { get; set; }
public string email { get; set; }
public string phoneNumber { get; set; }
public string companyName { get; set; }
public string billingAddress { get; set; }
public string billingCity { get; set; }
public string billingDistrict { get; set; }
public string billingTown { get; set; }
public string taxOffice { get; set; }
public string taxNumber { get; set; }
public string identityNo { get; set; }
public string islem { get; set; }
public HBProduct[] items { get; set; }
public class HBOrderDetail
public string id { get; set; }
public string status { get; set; }
public string customerId { get; set; }
public DateTime orderDate { get; set; }
public DateTime? unpackedDate { get; set; }
public string cargoCompany { get; set; }
public string barcode { get; set; }
public string packageNumber { get; set; }
public string shippingAddressDetail { get; set; }
public string recipientName { get; set; }
public string shippingCountryCode { get; set; }
public string shippingDistrict { get; set; }
public string shippingCity { get; set; }
public string shippingTown { get; set; }
public string email { get; set; }
public string phoneNumber { get; set; }
public string companyName { get; set; }
public string billingAddress { get; set; }
public string billingCity { get; set; }
public string billingDistrict { get; set; }
public string billingTown { get; set; }
public string taxOffice { get; set; }
public string taxNumber { get; set; }
public string identityNo { get; set; }
public string islem { get; set; }
public HBProduct[] items { get; set; }
public string name { get; set; }
public string customerId { get; set; }
public class cargoCompanyModel
public string id { get; set; }
public string name { get; set; }
public string shortName { get; set; }
public string logoUrl { get; set; }
public string trackingUrl { get; set; }
public string lineItemId { get; set; }
public string listingId { get; set; }
public string merchantId { get; set; }
public string hbSku { get; set; }
public string merchantSku { get; set; }
public int quantity { get; set; }
public Price price { get; set; }
public decimal vat { get; set; }
public Price totalPrice { get; set; }
public Price commission { get; set; }
public Price unitHBDiscount { get; set; }
public Price totalHBDiscount { get; set; }
public Price merchantUnitPrice { get; set; }
public Price merchantTotalPrice { get; set; }
public string cargoPaymentInfo { get; set; }
public DictionaryDisplay[] properties { get; set; }
public string productName { get; set; }
public string orderNumber { get; set; }
public DateTime orderDate { get; set; }
public string deliverytype { get; set; }
public List<HBSku> listings { get; set; }
public string hepsiburadaSku { get; set; }
public string merchantSku { get; set; }
public class SpDBOzellikler
public string kategoriid { get; set; }
public int urunid { get; set; }
public List<SpDBOzellikListe> ozelliklistesi { get; set; }
public string GGRenk { get; set; }
public string GGBeden { get; set; }
public string TRENDYOLRenk { get; set; }
public string TRENDYOLBeden { get; set; }
public string CICEKSEPETIRenk { get; set; }
public string CICEKSEPETIBeden { get; set; }
public string FLORenk { get; set; }
public string FLOBeden { get; set; }
public class SpDBOzellikListe
public string id { get; set; }
public string name { get; set; }
public SpDBOzellikSecilen secilen { get; set; }
public class SpDBOzellikSecilen
public string id { get; set; }
public string name { get; set; }
public class SPSerFeature
public string id { get; set; }
public string name { get; set; }
public List<SPSerItem> features { get; set; }
public List<SPSerItem> variants { get; set; }
public string id { get; set; }
public string name { get; set; }
public int count { get; set; }
public string type { get; set; }
public string required { get; set; }
public string parentId { get; set; }
public List<SPSerValue> items { get; set; }
public string id { get; set; }
public string name { get; set; }
public string parentId { get; set; }
public string category { get; set; }
public string property { get; set; }
public string item { get; set; }
public int productID { get; set; }
public string category { get; set; }
public object items { get; set; }
public long BLKODU { get; set; }
public short SIPARIS_DURUMU { get; set; }
public string SANALPAZAR_SIPNO { get; set; }
public string SANALPAZAR_TIPI { get; set; }
public string SANALPAZAR_PAKETID { get; set; }
public string SANALPAZAR_KARGONO { get; set; }
public string SANALPAZAR_PROMOSYONKODU { get; set; }
public sbyte SIPARIS_MUHASEBE_DURUMU { get; set; }
public int URUN_ADEDI { get; set; }
public DateTime SIPARIS_TARIHI { get; set; }
public int totalHareketSayisi { get; set; }
public int KARGO_ID { get; set; }
public string KARGO_BARKOD { get; set; }
public string EKALAN5 { get; set; }
public long BLKODU { get; set; }
public string SANALPAZAR_SIPNO { get; set; }
public class GGObjService
public string id { get; set; }
public string name { get; set; }
public List<GGFeatures> features { get; set; }
public List<GGVariantFeatures> variants { get; set; }
public List<HEPSIBURADA.HBAttributeList> attributes { get; set; }
public string id { get; set; }
public string name { get; set; }
public string count { get; set; }
public string type { get; set; }
public string required { get; set; }
public List<param> items { get; set; }
public class GGVariantFeatures
public int count { get; set; }
public string id { get; set; }
public List<param> items { get; set; }
public string name { get; set; }
public string type { get; set; }
public class TrendyolProductStockPriceItems
public List<TrendyolProductStockPriceItem> items { get; set; }
public class TrendyolProductStockPriceItem
public string barcode { get; set; }
public double quantity { get; set; }
public double? salePrice { get; set; }
public double? listPrice { get; set; }
public class TrendyolProductItems
public List<TrendyolProductItem> items { get; set; }
public class TrendyolProductItem
public string barcode { get; set; }
public string title { get; set; }
public string productMainId { get; set; }
public int brandId { get; set; }
public string categoryId { get; set; }
public double quantity { get; set; }
public string stockCode { get; set; }
public double dimensionalWeight { get; set; }
public string description { get; set; }
public string currencyType { get; set; }
public double? listPrice { get; set; }
public double? salePrice { get; set; }
public double vatRate { get; set; }
public string cargoCompanyId { get; set; }
public int? shipmentAddressId { get; set; }
public int? returningAddressId { get; set; }
public List<TrendyolImages> images { get; set; }
public List<TrendYolAttribute> attributes { get; set; }
public class TrendYolAttribute
public int attributeId { get; set; }
public string customAttributeValue { get; set; }
public int? attributeValueId { get; set; }
public class TrendyolAttrObj
public string attributeName { get; set; }
public string attributeValue { get; set; }
public class TrendyolImages
public string url { get; set; }
public class TrendyolFilterObj
public int totalElements { get; set; }
public int totalPages { get; set; }
public int page { get; set; }
public int size { get; set; }
public List<TrendyolFilterItem> content { get; set; }
public class TrendyolFilterItem
public string id { get; set; }
public bool approved { get; set; }
public string batchRequestId { get; set; }
public int supplierId { get; set; }
public object createDateTime { get; set; }
public object lastUpdateDate { get; set; }
public string gender { get; set; }
public string brand { get; set; }
public string barcode { get; set; }
public string title { get; set; }
public string categoryName { get; set; }
public string productMainId { get; set; }
public string description { get; set; }
public string stockUnitType { get; set; }
public int quantity { get; set; }
public double listPrice { get; set; }
public double salePrice { get; set; }
public int vatRate { get; set; }
public double dimensionalWeight { get; set; }
public string stockCode { get; set; }
public List<TrendyolImages> images { get; set; }
public List<TrendyolAttrObj> attributes { get; set; }
public List<TrendyolAttrObj> variantAttributes { get; set; }
public string color { get; set; }
public string platformListingId { get; set; }
public string productContentId { get; set; }
public bool onsale { get; set; }
public class TrendyolOrderAddress
public int id { get; set; }
public string firstName { get; set; }
public string lastName { get; set; }
public string company { get; set; }
public string address1 { get; set; }
public string address2 { get; set; }
public string city { get; set; }
public string district { get; set; }
public string postalCode { get; set; }
public string countryCode { get; set; }
public string fullAddress { get; set; }
public string phone { get; set; }
public class TrendyolOrderLines
public int quantity { get; set; }
public int productId { get; set; }
public int salesCampaignId { get; set; }
public string productSize { get; set; }
public string merchantSku { get; set; }
public string productName { get; set; }
public int productCode { get; set; }
public int merchantId { get; set; }
public double price { get; set; }
public string productColor { get; set; }
public int id { get; set; }
public string sku { get; set; }
public double vatBaseAmount { get; set; }
public string barcode { get; set; }
public string orderLineItemStatusName { get; set; }
public class TrendyolOrderContent
public int size { get; set; }
public int totalPages { get; set; }
public int page { get; set; }
public List<TrendyolOrder> content { get; set; }
public int totalElements { get; set; }
public class TrendyolOrder
public TrendyolOrderAddress shipmentAddress { get; set; }
public string orderNumber { get; set; }
public double totalPrice { get; set; }
public string taxNumber { get; set; }
public TrendyolOrderAddress invoiceAddress { get; set; }
public string customerFirstName { get; set; }
public string customerEmail { get; set; }
public int customerId { get; set; }
public string customerLastName { get; set; }
public int id { get; set; }
public object cargoTrackingNumber { get; set; }
public object cargoProviderName { get; set; }
public string cargoSenderNumber { get; set; }
public List<TrendyolOrderLines> lines { get; set; }
public object orderDate { get; set; }
public string tcIdentityNumber { get; set; }
public string currencyCode { get; set; }
public List<TrendyolPackageHistories> packageHistories { get; set; }
public class TrendyolPackageHistories
public long createdDate { get; set; }
public string status { get; set; }
public class TrendyolBatchRequestProduct
public TrendyolProductItem product { get; set; }
public float price { get; set; }
public double quantity { get; set; }
public string barcode { get; set; }
public class TrendyolBatchRequest
public TrendyolBatchRequestProduct requestItem { get; set; }
public string status { get; set; }
public List<string> failureReasons { get; set; }
public class TrendyolBatchRequests
public string batchRequestId { get; set; }
public List<TrendyolBatchRequest> items { get; set; }
public TrendyolBatchRequests()
{ items = new List<TrendyolBatchRequest>(); }
public string status { get; set; }
public object creationDate { get; set; }
public object lastModification { get; set; }
public string sourceType { get; set; }
public int itemCount { get; set; }
public class TrendyolInvoicedInfo
public List<TrendyolInvoicedLines> lines { get; set; }
public string status { get; set; }
public class TrendyolInvoicedLines
public int lineId { get; set; }
public int quantity { get; set; }
public class TrendyolAsProperties
public string Baslik { get; set; }
public string Kategori { get; set; }
public double Fiyat { get; set; }
public string Cinsiyet { get; set; }
public string Marka { get; set; }
public string cargoName { get; set; }
public string GGRenk { get; set; }
public string GGBeden { get; set; }
public string TRENDYOLRenk { get; set; }
public string TRENDYOLBeden { get; set; }
public bool sendAsMainProduct { get; set; }
public string defaultGonderiAdres { get; set; }
public SpDBOzellikler dbozellikleri { get; set; }
public class SpDBOzellikler
public string kategoriid { get; set; }
public int urunid { get; set; }
public List<SpDBOzellikListe> ozelliklistesi { get; set; }
public class SpDBOzellikListe
public string id { get; set; }
public string name { get; set; }
public SpDBOzellikSecilen secilen { get; set; }
public class SpDBOzellikSecilen
public string id { get; set; }
public string name { get; set; }
public bool allow { get; set; }
public class AmazonEnvelope
public AmazonHeader Header { get; set; }
public string MessageType { get; set; }
public bool PurgeAndReplace { get; set; }
public List<Message> AmzMsg { get; set; }
public class AmazonHeader
public string DocumentVersion { get; set; }
public string MerchantIdentifier { get; set; }
public int MessageID { get; set; }
public string OperationType { get; set; }
public AmazonPrdDetail Product { get; set; }
public AmazonInventory Inventory { get; set; }
public AmazonPrice Price { get; set; }
public AmazonProductImage ProductImage { get; set; }
public AmazonProductRelation Relationship { get; set; }
public class AmazonPrdDetail
public string SKU { get; set; }
public AmazonStandartPrdID StandardProductID { get; set; }
public string ProductTaxCode { get; set; }
public AmazonPrdDescriptionData DescriptionData { get; set; }
public string ProductData { get; set; }
public class AmazonStandartPrdID
public StandardProductIDType Type { get; set; }
public string Value { get; set; }
public enum StandardProductIDType
public class AmazonPrdDescriptionData
public string Title { get; set; }
public string Brand { get; set; }
public string Description { get; set; }
public string BulletPoint { get; set; }
public AmazonPrdMoney MSRP { get; set; }
public string Manufacturer { get; set; }
public string ItemType { get; set; }
public string RecommendedBrowseNode { get; set; }
public string MerchantShippingGroupName { get; set; }
public class AmazonPrdMoney
public string currency { get; set; }
public double MSRP { get; set; }
public class AmazonInventory
public string SKU { get; set; }
public string Quantity { get; set; }
public string SKU { get; set; }
public AmazonPrdMoney StandardPrice { get; set; }
public class AmazonProductImage
public string SKU { get; set; }
public AmazonProductImageType ImageType { get; set; }
public string ImageLocation { get; set; }
public enum AmazonProductImageType
Main, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, Search, PM01, MainOfferImage,
OfferImage1, OfferImage2, OfferImage3, OfferImage4, OfferImage5,
PFEE, PFUK, PFDE, PFFR, PFIT, PFES, EEGL, PT98, PT99, ELFL
public class AmazonProductRelation
public string ParentSKU { get; set; }
public List<Relation> AmazonProductRelationDetail { get; set; }
public string SKU { get; set; }
public AmazonRelationType Type { get; set; }
public enum AmazonChildrenDisplay
independently_displayable,
public enum AmazonRelationType
Variation, DisplaySet, Collection,
Accessory, Customized, Part, Complements,
Piece, Necessary, ReplacementPart, Similar,
Episode, Season, MerchantTitleAuthority, Component
public class AmazonProductTypeCat
public string CategoryId { get; set; }
public string ProductTypeId { get; set; }
public string ProductTypeName { get; set; }
public string KategoriName { get; set; }
public string KategoriId { get; set; }
public class GoogleEntries
public List<GoogleBatchRequest> entries { get; set; }
public class GoogleBatchRequest
public int batchId { get; set; }
public long merchantId { get; set; }
public string method { get; set; }
public string productId { get; set; }
public object product { get; set; }
public class GoogleProduct
public string offerId { get; set; }
public string title { get; set; }
public string description { get; set; }
public string link { get; set; }
public string imageLink { get; set; }
public string contentLanguage { get; set; }
public string targetCountry { get; set; }
public string channel { get; set; }
public string availability { get; set; }
public string condition { get; set; }
public string googleProductCategory { get; set; }
public string gtin { get; set; }
public GoogleCurrency price { get; set; }
public class GoogleGetProductList
public List<GoogleGetProduct> resources { get; set; }
public class GoogleGetProduct
public string id { get; set; }
public string offerId { get; set; }
public class GoogleUpdateProduct
public string availability { get; set; }
public GoogleCurrency price { get; set; }
public class GoogleCurrency
public string value { get; set; }
public string currency { get; set; }
public class GoogleShipping
public string country { get; set; }
public string service { get; set; }
public GoogleCurrency price { get; set; }
public class GoogleShippingWeight
public string value { get; set; }
public string unit { get; set; }
public class ProductProperties
public string OZELLIK_Text { get; set; }
public string OZELLIK_Value { get; set; }
public int OZELLIK_UrunID { get; set; }
public class ExtraParameter
public string key { get; set; }
public string value { get; set; }
public string option { get; set; }
public string extra { get; set; }
public Nullable<int> vm { get; set; }
public class AsDictionary<TKey, TValue> : Dictionary<TKey, TValue>
public void Add(TKey pAnahtar, TValue pDeger)
if (base.ContainsKey(pAnahtar) == false)
base.Add(pAnahtar, pDeger);
public string productMainId { get; set; }
public string stockCode { get; set; }
public string title { get; set; }
public string barcode { get; set; }
public string brand { get; set; }
public string cargoCompany { get; set; }
public string categoryName { get; set; }
public string currencyType { get; set; }
public string description { get; set; }
public List<Image> images { get; set; }
public List<VariantAttribute> variantAttributes { get; set; }
public int vatRate { get; set; }
public string url { get; set; }
public class VariantAttribute
public string attributeName { get; set; }
public string attributeValue { get; set; }
public List<Item> items { get; set; }
public double lp { get; set; }
public double sp { get; set; }
public string b { get; set; }
public List<productsprod> products { get; set; }
public class productsprod
public string b { get; set; }
public string s { get; set; }
public class ShipmentAddress
public string name { get; set; }
public string address { get; set; }
public string district { get; set; }
public string city { get; set; }
public string citycode { get; set; }
public string country { get; set; }
public string postalcode { get; set; }
public string phoneNumber { get; set; }
public class InvoiceAddress
public string name { get; set; }
public string address { get; set; }
public string district { get; set; }
public string city { get; set; }
public string citycode { get; set; }
public string country { get; set; }
public string postalcode { get; set; }
public string taxoffice { get; set; }
public string taxnumber { get; set; }
public string itemid { get; set; }
public string itemIndex { get; set; }
public int statusTypeId { get; set; }
public string statusDescription { get; set; }
public string packageId { get; set; }
public string packageStatusTypeId { get; set; }
public string packageStatusDescription { get; set; }
public string pieceCount { get; set; }
public string sku { get; set; }
public string merchantsku { get; set; }
public string barcode { get; set; }
public string productDescription { get; set; }
public double quantity { get; set; }
public string unit { get; set; }
public string unitPrice { get; set; }
public string grossAmount { get; set; }
public string taxAmount { get; set; }
public string netAmount { get; set; }
public string allowanceAmount { get; set; }
public string commisionAmount { get; set; }
public string commisionRate { get; set; }
public string currency { get; set; }
public string vatcode { get; set; }
public string cancelReason { get; set; }
public List<object> attributes { get; set; }
public DateTime lastUpdatedate { get; set; }
public string lastUpatetime { get; set; }
public string timestamp { get; set; }
public string image { get; set; }
public int? morhipoProductId { get; set; }
public bool cancelable { get; set; }
public string itemId { get; set; }
public string orderId { get; set; }
public string quantity { get; set; }
public string unit { get; set; }
public string packageId { get; set; }
public short statusTypeId { get; set; }
public string statusDescription { get; set; }
public string pieceCount { get; set; }
public string trackingCode { get; set; }
public string trackingUrl { get; set; }
public string shippingPartner { get; set; }
public List<Content> content { get; set; }
public string orderId { get; set; }
public string order { get; set; }
public string itemCount { get; set; }
public string quantity { get; set; }
public string grossAmount { get; set; }
public string taxAmount { get; set; }
public string netAmount { get; set; }
public string allowanceAmount { get; set; }
public string shopperId { get; set; }
public string shopperEmail { get; set; }
public DateTime date { get; set; }
public DateTime commitmentDate { get; set; }
public ShipmentAddress shipmentAddress { get; set; }
public InvoiceAddress invoiceAddress { get; set; }
public List<Itemsiparis> items { get; set; }
public List<Package> packages { get; set; }
public List<Datum> data { get; set; }
public int code { get; set; }
public string sku { get; set; }
public string barcode { get; set; }
public string merchantProductId { get; set; }
public class SanalPazarError
public DateTime date { get; set; }
public string desc { get; set; }
public string vm { get; set; }
public int product { get; set; }
public bool bold { get; set; }
BOS = 0, N11 = 1, CICEKSEPETI = 2, TRENDYOL = 3, HEPSIBURADA = 4, GITTIGIDIYOR = 5, PTTAVM = 6, AMAZON = 7, MODANISA = 8, AKAKCE = 9, N11PRO = 10, GELISTIRICI = 11, XML = 12,
OZELSEKME = 13, FLO = 14, MORHIPO = 15,
public static class SanalPazarLog
public static void NewErrorLog(Section vmType, List<string> logList)
if (HttpContext.Current == null)
HttpContext.Current = Eklenti2.FakeHttpContext();
DirectoryInfo Dir = new DirectoryInfo(HttpContext.Current.Server.MapPath("/Temp/VMCHANGELOGS"));
Directory.CreateDirectory(HttpContext.Current.Server.MapPath("/Temp/VMCHANGELOGS"));
File.SetAttributes(HttpContext.Current.Server.MapPath("/Temp/VMCHANGELOGS"), FileAttributes.Normal);
var vmDir = new DirectoryInfo(HttpContext.Current.Server.MapPath("/Temp/VMCHANGELOGS/" + vmType));
var vmNowDayDir = new DirectoryInfo(HttpContext.Current.Server.MapPath(String.Format("/Temp/VMCHANGELOGS/{1}/{0}", DateTime.Now.ToString("yyyyMMdd"), vmType)));
Directory.CreateDirectory(HttpContext.Current.Server.MapPath("/Temp/VMCHANGELOGS/" + vmType));
File.SetAttributes(HttpContext.Current.Server.MapPath("/Temp/VMCHANGELOGS/" + vmType), FileAttributes.Normal);
Directory.CreateDirectory(HttpContext.Current.Server.MapPath(String.Format("/Temp/VMCHANGELOGS/{1}/{0}", DateTime.Now.ToString("yyyyMMdd"), vmType)));
File.SetAttributes(HttpContext.Current.Server.MapPath(String.Format("/Temp/VMCHANGELOGS/{1}/{0}", DateTime.Now.ToString("yyyyMMdd"), vmType)), FileAttributes.Normal);
StringBuilder sb = new StringBuilder();
foreach (var item in logList)
sb.Append(item + "\r\n");
var txtFilePath = vmNowDayDir + "\\" + DateTime.Now.ToString("ddMMyyyy") + ".txt";
if (!File.Exists(txtFilePath))
using (var tw = new StreamWriter(txtFilePath, true))
tw.WriteLine(sb.ToString());
string s = Environment.NewLine;
string ss = sb.ToString();
File.AppendAllText(txtFilePath, string.Concat(ss, s));
public static void LogAdd(string baslik, string desc = "", string stokKod = "", string function = "", string obj = "", string result = "")
var editor = Eklenti2.GetEditor().EDITOR_AdSoyad;
var tarih = DateTime.Now;
var _function = !string.IsNullOrEmpty(function) ? function + " => " : string.Empty;
var _obj = !string.IsNullOrEmpty(obj) ? string.Format("# {0} #", obj) : string.Empty;
var _desc = !string.IsNullOrEmpty(desc) ? desc : string.Empty;
var _stokKod = !string.IsNullOrEmpty(stokKod) ? string.Format("[{0}]", stokKod) : string.Empty;
var log = string.Format("{0} : {1} \n {2} {3} {4} {5}", tarih, editor, _function, _desc, _obj, _stokKod);
NewErrorLog(getPazar(baslik), new List<string> { log });
public static Section getPazar(string type)
case "SanalPazarHEPSIBURADAV2":
case "HEPSIBURADA": return Section.HEPSIBURADA;
case "GITTIGIDIYOR": return Section.GITTIGIDIYOR;
case "SanalPazarTrendyol":
case "TRENDYOL": return Section.TRENDYOL;
case "N11": return Section.N11;
case "N11PRO": return Section.N11PRO;
case "SanalPazarMODANISA":
case "MODANISA": return Section.MODANISA;
case "SanalPazarCICEKSEPETI":
case "CICEKSEPETI": return Section.CICEKSEPETI;
case "AMAZON": return Section.AMAZON;
case "AKAKCE": return Section.AKAKCE;
case "PTTAVM": return Section.PTTAVM;
case "GELISTIRICI": return Section.GELISTIRICI;
case "XML": return Section.XML;
case "OzelSekme": return Section.OZELSEKME;
case "Flo": return Section.FLO;
case "SanalAuto": return Section.SANALAUTO;
default: return Section.BOS;