public static void updateProccesses(Queue <int> proccessIds) { var i = 0; Stopwatch stw = new Stopwatch(); while (proccessIds.Count > 0) { var proccessId = proccessIds.Dequeue(); //Proccess yeniden oluşturulduğunda personel üzerindeki engeller kaldırılıyor (Ali AKAY) 01.11.2016 int x; bool b; WebApiConfig.K_PersonelForProccess.TryRemove(proccessId, out x); if (WebApiConfig.AdslPersonels.ContainsKey(x)) { WebApiConfig.AdslPersonels[x].T_153_155.TryRemove(proccessId, out b); } var subTasks = new Queue <int>(); subTasks.Enqueue(proccessId); while (subTasks.Count > 0) { stw.Start(); i++; var taskId = subTasks.Dequeue(); //if (WebApiConfig.AdslTaskQueues.ContainsKey(taskId) && WebApiConfig.AdslProccessIndexes.ContainsKey(taskId) && WebApiConfig.AdslProccesses.ContainsKey(WebApiConfig.AdslProccessIndexes[taskId])) KocAdslProccess kap = null; adsl_taskqueue atq = null; // AdslProccessIndexes dictionary nesnesi atrık kullanılmıyor (Hüseyin KOZ) 01.11.2016 //int proccessID = 0; //if (WebApiConfig.AdslProccessIndexes.TryGetValue(taskId, out proccessID)) if (WebApiConfig.AdslTaskQueues.TryGetValue(taskId, out atq)) { if (WebApiConfig.AdslProccesses.TryGetValue(atq.relatedtaskorderid ?? taskId, out kap)) { kap.Update(atq); } } //foreach (var item in WebApiConfig.AdslTaskQueues.Where(r => r.Value.previoustaskorderid == taskId).OrderBy(r => r.Value.taskorderno)) subTasks.Enqueue(item.Value.taskorderno); HashSet <int> stks = new HashSet <int>(); if (WebApiConfig.AdslSubTasks.TryGetValue(taskId, out stks)) { foreach (var item in stks) { subTasks.Enqueue(item); } } stw.Stop(); var ttt = stw.Elapsed; var btt = stw.ElapsedMilliseconds / (i); } } }
public void Update(adsl_taskqueue tq) { var taskType = WebApiConfig.AdslTasks[tq.taskid].tasktype; int stataType = tq.status.HasValue ? WebApiConfig.AdslStatus.ContainsKey(tq.status.Value) ? WebApiConfig.AdslStatus[tq.status.Value].statetype.Value : 0 : 0; List <int> containLastTask = new List <int> { 7, 10 }; // task type ana hiyerarşi içinde diğilse ve task sl içermiyorsa last task atanması için (Hüseyin KOZ) // Model Güncelleme Talebi taskları ve kurulum taskları için if (taskType == 3) { if (tq.taskid == 153 || tq.taskid == 155) { if (WebApiConfig.AdslPersonels.ContainsKey(tq.attachedpersonelid ?? 0)) { if (stataType == 1 || stataType == 3) { WebApiConfig.AdslPersonels[tq.attachedpersonelid.Value].T_153_155.TryAdd(tq.relatedtaskorderid ?? tq.taskorderno, true); WebApiConfig.K_PersonelForProccess.TryAdd(tq.relatedtaskorderid ?? tq.taskorderno, tq.attachedpersonelid.Value); } } } else { if (WebApiConfig.AdslPersonels.ContainsKey(tq.attachedpersonelid ?? 0)) { bool b; int x; if (stataType == 1 || stataType == 2 || stataType == 3) // task iptale çekilince de işlem bitirilmeli iptal ekledim (Hüseyin KOZ) 02.11.2016 { WebApiConfig.AdslPersonels[tq.attachedpersonelid.Value].T_153_155.TryRemove(tq.relatedtaskorderid ?? tq.taskorderno, out b); WebApiConfig.K_PersonelForProccess.TryRemove(tq.relatedtaskorderid ?? tq.taskorderno, out x); } } } } //Başlangıç Taskı ise if (WebApiConfig.AdslTaskTypes[taskType].startsProccess) { Last_Status = stataType == 1 ? 0 : stataType; Last_TON = tq.taskorderno; S_TON = tq.taskorderno; Kr_TON = null; K_TON = null; Ktk_TON = null; } //Randevu Taskı ise else if (taskType == 2) { Last_Status = stataType == 1 ? 0 : stataType; Last_TON = tq.taskorderno; Kr_TON = tq.taskorderno; K_TON = null; Ktk_TON = null; } //Kurulum ve Rand.suz Kurulum Taskı ise else if (taskType == 3 || taskType == 4) { Last_Status = stataType == 1 ? 0 : stataType; Last_TON = tq.taskorderno; K_TON = tq.taskorderno; Ktk_TON = null; } //SOL Kapama Taskı ise if (WebApiConfig.AdslTaskTypes[taskType].endsProccess) { Last_Status = stataType; Last_TON = tq.taskorderno; Ktk_TON = tq.taskorderno; } if (WebApiConfig.AdslTaskSl.ContainsKey(tq.taskid) || containLastTask.Contains(taskType)) { Last_Status = stataType; Last_TON = tq.taskorderno; } if (proccessCancelled) { return; } // Task SL taskı mı ? if (WebApiConfig.AdslTaskSl.ContainsKey(tq.taskid)) { //Bayi SL Başlangıç if (tq.attachmentdate.HasValue) { foreach (var sl in WebApiConfig.AdslTaskSl[tq.taskid][0]) { if (!SLs.ContainsKey(sl)) { SLs[sl] = new SLTime(); } if (!SLs[sl].BStart.HasValue) { SLs[sl].BStart = tq.attachmentdate; SLs[sl].BayiID = tq.attachedpersonelid; SLs[sl].CustomerId = tq.attachedobjectid.Value; } } } //Koç SL Başlangıç if (tq.appointmentdate.HasValue || tq.consummationdate.HasValue) { foreach (var sl in WebApiConfig.AdslTaskSl[tq.taskid][2]) { if (!SLs.ContainsKey(sl)) { SLs[sl] = new SLTime(); } if (!SLs[sl].KStart.HasValue) { SLs[sl].KStart = tq.appointmentdate ?? tq.consummationdate; } SLs[sl].CustomerId = tq.attachedobjectid.Value; } } //Bayi SL Bitiş (9156 iptal onayı bekliyor durumu sl sonlandırmamalı geçici olarak id ekledim çözüm sorulacak) if (tq.consummationdate.HasValue && tq.status != null && WebApiConfig.AdslStatus.ContainsKey(tq.status.Value) && (WebApiConfig.AdslStatus[tq.status.Value].statetype.Value != 2 || WebApiConfig.AdslTaskSl[tq.taskid][1].Contains(7)) && tq.status != 9156) { foreach (var sl in WebApiConfig.AdslTaskSl[tq.taskid][1]) { //if (!SLs.ContainsKey(sl)) SLs[sl] = new SLTime(); if (WebApiConfig.AdslStatus[tq.status.Value].statetype.Value == 2 && (sl != 7 || (tq.attachmentdate < DateTime.ParseExact("2017-03-10", "yyyy-MM-dd", CultureInfo.InvariantCulture)))) { continue; // sl türü 7: Evrak SL => 10.03.2017'den sonraki iptal'ler de sl'e etki edecek } if (SLs.ContainsKey(sl) && !SLs[sl].BEnd.HasValue) { SLs[sl].BEnd = tq.consummationdate; } } //Koç SL Bitiş foreach (var sl in WebApiConfig.AdslTaskSl[tq.taskid][3]) { //if (!SLs.ContainsKey(sl)) SLs[sl] = new SLTime(); if (WebApiConfig.AdslStatus[tq.status.Value].statetype.Value == 2 && (sl != 7 || tq.attachmentdate < DateTime.ParseExact("2017-03-10", "yyyy-MM-dd", CultureInfo.InvariantCulture))) { continue; // sl türü 7: Evrak SL => 10.03.2017'den sonraki iptal'ler de sl'e etki edecek } if (SLs.ContainsKey(sl) && !SLs[sl].KEnd.HasValue) { SLs[sl].KEnd = tq.consummationdate; } } } } }
public HttpResponseMessage Infos(InfoRequest info) { if (info == null) { return(Request.CreateResponse(HttpStatusCode.OK, new { code = 1, message = "Eksik Bilgi." }, "application/json")); } var mail = HttpContext.Current.Request.Headers[userHeader]; var pass = HttpContext.Current.Request.Headers[passHeader]; using (var db = new KOCSAMADLSEntities()) { var user = db.personel.Where(r => r.email == mail && r.password == pass).FirstOrDefault(); if (user == null) { return(Request.CreateResponse(HttpStatusCode.OK, new { code = 1, message = "Personel Bilgileri Hatalıdır." }, "application/json")); } info.gsm = isgsm(info.gsm); info.tc = clean(info.tc); info.telefon = clean(info.telefon); if (string.IsNullOrEmpty(info.tc) || string.IsNullOrEmpty(info.gsm) || string.IsNullOrEmpty(info.adsoyad) || string.IsNullOrEmpty(info.adres) || string.IsNullOrEmpty(info.fault) || info.il == null || info.ilce == null) { return(Request.CreateResponse(HttpStatusCode.OK, new { code = 1, message = "Eksik Bilgi." }, "application/json")); } // TC Kimlik tekil durum kaldırıldığında değişecek var tckimlik = info.tc; while (true) { if (checktc(tckimlik)) { break; } else { tckimlik = tckimlik.Substring(0, tckimlik.Length - 5) + (Convert.ToInt32(tckimlik.Substring(tckimlik.Length - 2, 2)) + 1); } } if (tckimlik != info.tc) { info.adres = "TC : " + info.tc + " " + info.adres; info.tc = tckimlik; } var customer = new customer { customername = info.adsoyad.ToUpper(), tc = info.tc, gsm = info.gsm, phone = info.telefon, ilKimlikNo = info.il, ilceKimlikNo = info.ilce, bucakKimlikNo = info.bucak, mahalleKimlikNo = info.mahalle, yolKimlikNo = 61, binaKimlikNo = 61, daire = 61, updatedby = user.personelid, description = info.adres, lastupdated = DateTime.Now, creationdate = DateTime.Now, deleted = false, email = info.email, }; db.customer.Add(customer); db.SaveChanges(); var taskqueue = new adsl_taskqueue { appointmentdate = DateTime.Now, attachedobjectid = customer.customerid, attachedpersonelid = user.personelid, attachmentdate = DateTime.Now, creationdate = DateTime.Now, deleted = false, description = info.taskdetay, lastupdated = DateTime.Now, status = null, taskid = 1219, // Akıllı Nokta Data bilgilendirme Taskı updatedby = user.personelid, fault = info.fault }; db.taskqueue.Add(taskqueue); db.SaveChanges(); taskqueue.relatedtaskorderid = taskqueue.taskorderno; // başlangıç tasklarının relatedtaskorderid kendi taskorderno tutacak (Hüseyin KOZ) 13.10.2016 db.SaveChanges(); } return(Request.CreateResponse(HttpStatusCode.OK, new { code = 0, message = "OK" }, "application/json")); }
public HttpResponseMessage saveSalesTask(DTOcustomer request) { if (!control(Request)) // client ip controlü { return(Request.CreateResponse(HttpStatusCode.OK, false, "application/json")); } int[] ils = { 4, 5, 8, 19, 24, 25, 28, 29, 36, 52, 53, 55, 57, 60, 61, 69, 75, 76 }; // Bölge içi iller kaydedilecek taskid'si bölge içi veya dışı olarak seçim yapılacak bool inCheck = false; // Bölge içinde olan müşteri kontrolü foreach (int il in ils) { if (request.ilKimlikNo == il) { inCheck = true; break; } } if (!inCheck) { // Bölge içi gibi gelen taskı aynı türden bölge dışına çevir (Çağrı Satış Yalın -> Çağrı Satış Yalın Dış vb.) if (request.taskid == 122) // churn iç churn dış { request.taskid = 121; } else if (request.taskid == 119) { request.taskid = 120; } else if (request.taskid == 131) { request.taskid = 133; } } using (var db = new KOCSAMADLSEntities()) using (var transaction = db.Database.BeginTransaction()) try { var person = db.personel.FirstOrDefault(r => r.personelid == request.salespersonel); if (person == null) { request.salespersonel = 1458; // Eğer gönderilen personel database'de yoksa ÇAĞRI MERKEZİ (KOÇ İLETİŞİM) satış yapsın } if (request.customerid == 0) { var oldCust = db.customer.Where(c => c.tc == request.tc && c.deleted == false).ToList(); if (oldCust.Count == 0) { var customer = new customer { customername = request.customername.ToUpper(), tc = request.tc, gsm = request.gsm, phone = request.phone, ilKimlikNo = request.ilKimlikNo, ilceKimlikNo = request.ilceKimlikNo, bucakKimlikNo = request.bucakKimlikNo, mahalleKimlikNo = request.mahalleKimlikNo, yolKimlikNo = 61, binaKimlikNo = 61, daire = 61, updatedby = request.salespersonel ?? 1458, // ÇAĞRI MERKEZİ (KOÇ İLETİŞİM) description = request.description, lastupdated = DateTime.Now, creationdate = DateTime.Now, deleted = false, email = request.email, superonlineCustNo = request.superonlineCustNo, }; db.customer.Add(customer); db.SaveChanges(); request.customerid = customer.customerid; } else { return(Request.CreateResponse(HttpStatusCode.OK, "Girilen TC Numarası Başkasına Aittir", "application/json")); } } var taskqueue = new adsl_taskqueue { appointmentdate = DateTime.Now, attachedobjectid = request.customerid, attachedpersonelid = request.salespersonel ?? 1458, // yoksa ÇAĞRI MERKEZİ (KOÇ İLETİŞİM)'a ata attachmentdate = DateTime.Now, creationdate = DateTime.Now, deleted = false, description = request.taskdescription, lastupdated = DateTime.Now, status = null, taskid = request.taskid, updatedby = request.salespersonel ?? 1458, fault = "Sinerji Çağrı" }; db.taskqueue.Add(taskqueue); db.SaveChanges(); taskqueue.relatedtaskorderid = taskqueue.taskorderno; db.SaveChanges(); if (request.productids != null && request.productids.Length > 0) { foreach (var item in request.productids) { var customerproducst = new adsl_customerproduct { taskid = taskqueue.taskorderno, customerid = request.customerid, productid = item, campaignid = request.campaignid, creationdate = DateTime.Now, lastupdated = DateTime.Now, updatedby = request.salespersonel ?? 1458, deleted = false }; db.customerproduct.Add(customerproducst); } db.SaveChanges(); } transaction.Commit(); WebApiConfig.updateAdslData(); logs(request, true, ""); return(Request.CreateResponse(HttpStatusCode.OK, "Tamamlandı", "application/json")); } catch (Exception e) { transaction.Rollback(); logs(request, false, e.Message); return(Request.CreateResponse(HttpStatusCode.OK, e.Message, "application/json")); } }