Пример #1
0
        /// <summary>
        /// یافتن تگ های جدید و افزودن به بانک اطلاعاتی
        /// </summary>
        public static void NewTags()
        {
            using (var db = new schooldbEntities())
            {
                try
                {
                    var qry = db.TagRecorders.Where(x => x.enables && x.SMS == false).Select(x => x.TagID).ToList().RemoveDuplicates();
                    foreach (var item in qry)
                    {
                        var tag = db.Tags.FirstOrDefault(x => x.TagID_HEX == item);

                        if (tag == null)
                        {
                            db.Tags.Add(new Tag()
                            {
                                TagID_HEX = item,
                                CartView  = HexToDecimal(item),
                            });
                            db.SaveChanges();
                            Logger.WriteMessageLog($"Save New TAG : {item} ViewLabel {HexToDecimal(item)}");
                        }
                    }
                }
                catch (Exception e)
                {
                    Logger.WriteErrorLog(e, "NewTags");
                }
            }
        }
Пример #2
0
 /// <summary>
 /// پردازش و انتقال بین دو سرور و ثبت و امحای تردد های ثبت شده
 /// </summary>
 public static void TransformDataBase()
 {
     using (var dbx = new schooldbEntities())
     {
         using (var trans = dbx.Database.BeginTransaction())
         {
             try
             {
                 var listForDisableinMySql = MySqlClass.ReaderSQL(); // لیست تگ های ثبت نشده
                 foreach (var tagList in listForDisableinMySql)      // ثبت در بانک اطلاعاتی اس کیوال
                 {
                     dbx.TagRecorders.Add(new TagRecorder()
                     {
                         TagID            = tagList.Tag.Remove(tagList.Tag.Length - 1),
                         DateTimeRegister = tagList.dateRegister,
                         MysqlID          = tagList.ID,
                         SMS     = false,
                         type    = Convert.ToBoolean(tagList.TypeImport),
                         enables = true,
                     });
                 }
                 dbx.SaveChanges();
                 var resultMysql = MySqlClass.UpdateTagRecordList(listForDisableinMySql.Select(x => x.ID).ToList());
                 if (resultMysql)
                 {
                     trans.Commit();
                 }
                 else
                 {
                     MySqlClass.rollbackTagRecordList(listForDisableinMySql.Select(x => x.ID).ToList());
                     Logger.WriteMessageLog("Error TransformDataBase");
                     trans.Rollback();
                 }
             }
             catch (Exception e)
             {
                 Logger.WriteErrorLog(e, "TransformDataBase");
                 trans.Rollback();
             }
         }
     }
 }
Пример #3
0
 /// <summary>
 /// حذف تگ های خام و بروزرسانی شناسه تگ ها
 /// </summary>
 public static void UpdateTagID()
 {
     using (var db = new schooldbEntities())
     {
         var listRemove = new List <TagRecorder>();
         try
         {
             var qry = db.TagRecorders.Where(x => x.enables && x.SMS == false && x.TagID_FK == null).ToList();
             foreach (var item in qry)
             {
                 var result = db.StudentTAGs.FirstOrDefault(x => x.Tag.TagID_HEX == item.TagID && x.Enabled);
                 if (result == null)
                 {
                     listRemove.Add(item);
                 }
                 else
                 {
                     item.TagID_FK     = result.TagID_FK;
                     item.StudentID_FK = result.Student_FK;
                 }
             }
             db.SaveChanges();
         }
         catch (Exception e)
         {
             Logger.WriteErrorLog(e, "UpdateTagID");
         }
         finally
         {
             try
             {
                 db.TagRecorders.RemoveRange(listRemove);
                 db.SaveChanges();
             }
             catch (Exception e)
             {
                 Logger.WriteErrorLog(e, "UpdateTagID Finally");
             }
         }
     }
 }
Пример #4
0
 public static void SendInput(long mobile, string fullName, string inDate, int id)
 {
     try
     {
         var token         = new Token().GetToken("17413e1864890dd130c73e17", "Fm&)**)!@(*");
         var ultraFastSend = new UltraFastSend()
         {
             Mobile         = mobile,
             TemplateId     = 33365,
             ParameterArray = new List <UltraFastParameters>()
             {
                 new UltraFastParameters()
                 {
                     Parameter = "FullName", ParameterValue = fullName,
                 },
                 new UltraFastParameters()
                 {
                     Parameter = "InDate", ParameterValue = inDate
                 }
             }.ToArray()
         };
         UltraFastSendRespone ultraFastSendRespone = new UltraFast().Send(token, ultraFastSend);
         if (Convert.ToBoolean(ultraFastSendRespone.IsSuccessful))
         {
             using (var dbx = new schooldbEntities())
             {
                 var find = dbx.TagRecorders.Find(id);
                 find.SMS = true;
                 var resultSave = dbx.SaveChanges();
                 Logger.WriteMessageSenderLog(Convert.ToBoolean(resultSave) ? $"Send Input {mobile}" : $"Not Send Input {mobile}");
             }
         }
     }
     catch (Exception e)
     {
         Logger.WriteErrorLog(e, "SendInput");
     }
 }
Пример #5
0
 public static void SMSSenderBirthDay()
 {
     using (var db = new schooldbEntities())
     {
         try
         {
             //تمام ثبت های امروز
             var qryDayRecorder = db.TagRecorders.
                                  Where(x => x.SMS == false && x.enables && x.StudentID_FK > 0 && x.TagID_FK > 0).ToList(); // تمام ثبت های امروز
             foreach (var item in qryDayRecorder)                                                                           // جدول بندی تردد ها بر اساس هر تگ که در عین حال فقط و فقط متعلق به یک دانش آموز است
             {
                 var student = db.Students.Find(item.StudentID_FK.Value);
                 try
                 {
                     if (item.type) //ورودی ها
                     {
                         var dat    = item.DateTimeRegister.AddSeconds(-120);
                         var finder = db.TagRecorders.Any(x =>
                                                          x.TagID_FK == item.TagID_FK &&
                                                          x.DateTimeRegister > dat &&
                                                          x.SMS &&
                                                          x.type &&
                                                          x.enables);
                         if (finder)
                         {
                             item.SMS     = true;
                             item.enables = false;
                             db.SaveChanges();
                         }
                         else
                         {
                             SendSMS.SendInput(Convert.ToInt64(student.SMS), student.FullName,
                                               item.DateTimeRegister.Convert_PersianCalender(), item.ID); //ارسال
                         }
                     }
                     else
                     {
                         var dat    = item.DateTimeRegister.AddSeconds(-120);
                         var finder = db.TagRecorders.Any(x =>
                                                          x.TagID_FK == item.TagID_FK &&
                                                          x.DateTimeRegister > dat &&
                                                          x.SMS &&
                                                          x.type == false &&
                                                          x.enables);
                         if (finder)
                         {
                             item.SMS     = true;
                             item.enables = false;
                             db.SaveChanges();
                         }
                         else
                         {
                             SendSMS.SendOutput(Convert.ToInt64(student.SMS), student.FullName,
                                                item.DateTimeRegister.Convert_PersianCalender(), item.ID);
                         };                                                                   //ارسال
                     }
                 }
                 catch (Exception e)
                 {
                     Logger.WriteErrorLog(e, "ForEach SMSSender");
                 }
             }
         }
         catch (Exception e)
         {
             Logger.WriteErrorLog(e, "SMSSender");
         }
     }
 }