Esempio n. 1
0
        /// <summary>
        /// 單一更新
        /// </summary>
        /// <param name="conditions"></param>
        /// <param name="data"></param>
        /// <returns></returns>
        public Boolean Update(Conditions <T1> conditions, T2 data)
        {
            using (DataBase.SETENG_Entities db = new DataBase.SETENG_Entities())
            {
                db.Configuration.LazyLoadingEnabled = false;

                var query = db.Set <T1>().AsQueryable();

                conditions.Includes?.ForEach(x => query = query.Include(x));

                query = query.AsExpandable().Where(conditions.GetPredicate());

                var original = query.FirstOrDefault();

                if (original == null)
                {
                    throw new NullReferenceException($"[UPDATE] error. data is not found : {typeof(T1)} .");
                }

                var noval = Mapper.Map <T1>(data);

                UpdateProcess(original, noval, conditions.AllowProps);

                return(db.SaveChanges() > 0);
            }
        }
Esempio n. 2
0
        /// <summary>
        /// 取得清單,有多Top指令
        /// </summary>
        /// <returns>For案件查詢用,一次載入筆數過多,APP會有問題</returns>
        public PagedList <T2> TakeCountGetList(Conditions <T1> conditions)
        {
            using (DataBase.SETENG_Entities db = new DataBase.SETENG_Entities())
            {
                db.Configuration.LazyLoadingEnabled = false;

                var query = db.Set <T1>().AsQueryable();

                conditions.Includes?.ForEach(x => query = query.Include(x));

                query = query.AsExpandable().Where(conditions.GetPredicate());

                query = query.OrderBy(conditions.MajorOrders);

                conditions.MinorOrders.ForEach(x => query = query.ThenBy(x));

                conditions.TotalCount = query.Count();

                int Count = conditions.PageSize * (conditions.PageIndex + 1);

                query = query.Take(Count);

                return(new PagedList <T2>(Mapper.Map <IEnumerable <T2> >(query),
                                          conditions.PageIndex,
                                          conditions.PageSize,
                                          conditions.TotalCount));
            }
        }
Esempio n. 3
0
        /// <summary>
        /// 紀錄推播訊息
        /// </summary>
        /// <param name="Sn"></param>
        /// <param name="Account"></param>
        /// <param name="Content"></param>
        /// <returns></returns>
        public Boolean RecordPush(string Sn, IPushRequest data)
        {
            using (DataBase.SETENG_Entities db = new DataBase.SETENG_Entities())
            {
                db.Configuration.LazyLoadingEnabled = false;

                var exist = db.TCallLogRecord.SingleOrDefault(x => x.SN == Sn);

                if (exist == null)
                {
                    db.TCallLogRecord.Add(new DataBase.TCallLogRecord()
                    {
                        SN           = Sn,
                        RecordRemark = JsonConvert.SerializeObject(new List <IPushRequest>()
                        {
                            data
                        }),
                        RecordDatetime = DateTime.Now,
                    });
                }
                else
                {
                    var records = JsonConvert.DeserializeObject <List <IPushRequest> >(exist.RecordRemark);

                    records.Add(data);

                    exist.RecordRemark = JsonConvert.SerializeObject(records);
                }

                return(db.SaveChanges() > 0);
            }
        }
Esempio n. 4
0
        /// <summary>
        /// 取得案件的待受理技師
        /// </summary>
        public Dictionary <string, string> GetAwaitAdoptTechnician(Tcallog data)
        {
            Dictionary <string, string> resault = new Dictionary <string, string>();

            DataBase.SETENG_Entities db = new DataBase.SETENG_Entities();
            var table = db.TTechnicianGroup.Where(x => x.CompCd == data.CompCd && x.VendorCd == data.VenderCd).ToList();

            if (table.Count == 0)
            {
                return(new Dictionary <string, string>());
            }
            else
            {
                table.ForEach(x =>
                {
                    var GroupClaims = db.TTechnicianGroupClaims.Where(y => y.Seq == x.Seq).Select(z => z.Account).ToList();
                    GroupClaims.ForEach(g =>
                    {
                        var Technician = db.TVenderTechnician.Where(q => q.Comp_Cd == data.CompCd && q.Vender_Cd == data.VenderCd && q.Account == g).FirstOrDefault();
                        if (!resault.Keys.Contains(g))
                        {
                            resault.Add(g, Technician.RegistrationID);
                        }
                    });
                });
                return(resault);
            }
        }
Esempio n. 5
0
 /// <summary>
 /// 取得下載連結
 /// </summary>
 /// <param name="index"></param>
 /// <returns></returns>
 public string GetLink(string index)
 {
     DataBase.SETENG_Entities db = new DataBase.SETENG_Entities();
     if (index == "1") //1=>ios 2=>android
     {
         return(db.TAPPVER.Where(x => x.APP == "SETENGII_IOS").Select(Y => Y.Url).FirstOrDefault());
     }
     else
     {
         return(db.TAPPVER.Where(x => x.APP == "SETENGII_ANDROID").Select(Y => Y.Url).FirstOrDefault());
     }
 }
Esempio n. 6
0

        
Esempio n. 7
0
        /// <summary>
        /// 取得設施的設備分類
        /// </summary>
        public string GetSpcAssetKind(string CompCd, string Asset)
        {
            DataBase.SETENG_Entities db = new DataBase.SETENG_Entities();
            var table = db.TASSETS.Where(x => x.Comp_Cd == CompCd && x.Asset_Cd == Asset).FirstOrDefault();

            if (table != null)
            {
                return(table.Spc_Asset_Kind);
            }
            else
            {
                return("");
            }
        }
Esempio n. 8
0
        /// <summary>
        /// 單一取得
        /// </summary>
        /// <param name="conditions"></param>
        /// <returns></returns>
        public T2 Get(Conditions <T1> conditions)
        {
            using (DataBase.SETENG_Entities db = new DataBase.SETENG_Entities())
            {
                db.Configuration.LazyLoadingEnabled = false;

                var query = db.Set <T1>().AsQueryable();

                conditions.Includes?.ForEach(x => query = query.Include(x));

                query = query.AsExpandable().Where(conditions.GetPredicate());

                return(Mapper.Map <T2>(query.SingleOrDefault()));
            }
        }
Esempio n. 9
0
        /// <summary>
        /// 是否包含一個及一個以上的項目
        /// </summary>
        /// <param name="conditions"></param>
        /// <returns></returns>
        public Boolean IsExist(Conditions <T1> conditions)
        {
            using (DataBase.SETENG_Entities db = new DataBase.SETENG_Entities())
            {
                db.Configuration.LazyLoadingEnabled = false;

                var query = db.Set <T1>().AsQueryable();

                conditions.Includes?.ForEach(x => query = query.Include(x));

                query = query.AsExpandable().Where(conditions.GetPredicate());

                return(query.Any());
            }
        }
Esempio n. 10
0
        /// <summary>
        /// 取得案件的受理技師
        /// </summary>
        public Dictionary <string, string> GetAcceptTechnician(string CompCd, string Sn)
        {
            Dictionary <string, string> resault = new Dictionary <string, string>();

            DataBase.SETENG_Entities db = new DataBase.SETENG_Entities();
            var table = db.TAcceptedLog.Where(x => x.Comp_Cd == CompCd && x.Sn == Sn).Include(y => y.TCALLOG).FirstOrDefault();

            if (table != null)
            {
                var account    = table.Account;
                var Technician = db.TVenderTechnician.Where(x => x.Comp_Cd == CompCd && x.Vender_Cd == table.TCALLOG.Vender_Cd && x.Account == account).FirstOrDefault();
                resault.Add(account, Technician.RegistrationID);
                return(resault);
            }
            else
            {
                return(new Dictionary <string, string>());
            }
        }
Esempio n. 11
0
        /// <summary>
        /// 單一新增(排除query.Any)
        /// </summary>
        /// <param name="conditions"></param>
        /// <param name="data"></param>
        /// <returns></returns>
        public Boolean Insert(Conditions <T1> conditions, T2 data)
        {
            using (DataBase.SETENG_Entities db = new DataBase.SETENG_Entities())
            {
                db.Configuration.LazyLoadingEnabled = false;

                var query = db.Set <T1>().AsQueryable();

                conditions.Includes?.ForEach(x => query = query.Include(x));

                query = query.AsExpandable().Where(conditions.GetPredicate());

                //if (query.Any()) { throw new NullReferenceException($"[ADD] error. data is Exist : {typeof(T1)} ."); }

                var entity = Mapper.Map <T1>(data);

                db.Set <T1>().Add(entity);

                return(db.SaveChanges() > 0);
            }
        }
Esempio n. 12
0
        /// <summary>
        /// (單一/整批)刪除
        /// </summary>
        /// <param name="conditions"></param>
        /// <returns></returns>
        public Boolean Remove(Conditions <T1> conditions)
        {
            using (DataBase.SETENG_Entities db = new DataBase.SETENG_Entities())
            {
                db.Configuration.LazyLoadingEnabled = false;

                var query = db.Set <T1>().AsQueryable();

                conditions.Includes?.ForEach(x => query = query.Include(x));

                query = query.AsExpandable().Where(conditions.GetPredicate());

                if (!query.Any())
                {
                    throw new NullReferenceException($"[REMOVE] error. data is not found : {typeof(T1)} .");
                }

                db.Set <T1>().RemoveRange(query);

                return(db.SaveChanges() > 0);
            }
        }
Esempio n. 13
0
        /// <summary>
        /// 取得案件照片
        /// </summary>
        /// <param name="CompCd"></param>
        /// <param name="Sn"></param>
        /// <returns></returns>
        public IEnumerable <Byte[]> GetWebImageList(string CompCd, string Sn)
        {
            using (DataBase.SETENG_Entities db = new DataBase.SETENG_Entities())
            {
                db.Configuration.LazyLoadingEnabled = false;

                var query = db.TCALIMG.Where(x => x.Comp_Cd == CompCd &&
                                             x.Sn == Sn);


                if (!query.Any())
                {
                    return(null);
                }

                //var result = query.Select(x => x.Call_Image)
                //                  .ToList();
                var result = db.TUpFile.Where(x => query.Select(y => y.File_Seq).Contains(x.File_Seq)).Select(z => z.Upload_File).ToList();

                return(result);
            }
        }
Esempio n. 14
0
        ///// <summary>
        ///// 刪除技師圖片
        ///// </summary>
        ///// <param name="Data"></param>
        ///// <param name="Path"></param>
        ///// <returns></returns>
        //public Boolean DeleteImg(TvenderTechnician Data, string filePath)
        //{
        //    using (DataBase.SpccEngCCSysEntities db = new DataBase.SpccEngCCSysEntities())
        //    {

        //        db.Configuration.LazyLoadingEnabled = false;

        //        var query = db.TVenderTechnician
        //                      .SingleOrDefault(x => x.Account == Data.Account &&
        //                                            x.Vender_Cd == Data.VenderCd &&
        //                                            x.Comp_Cd == Data.CompCd);

        //        if (query == null)
        //            throw new NullReferenceException($"[ERROR]=> 刪除技師圖片找不到相關資訊");



        //        var technicianImgPath = JsonConvert.DeserializeObject<List<string>>(query.TechnicianImgPath);
        //        var stickerImgPath = JsonConvert.DeserializeObject<List<string>>(query.StickerImgPath);
        //        var LicenseImgPath = JsonConvert.DeserializeObject<List<string>>(query.LicenselmgPath);

        //        if (technicianImgPath.Contains(filePath))
        //        {
        //            technicianImgPath.Remove(filePath);
        //            query.TechnicianImgPath = JsonConvert.SerializeObject(technicianImgPath);
        //        }
        //        else if (stickerImgPath.Contains(filePath))
        //        {
        //            stickerImgPath.Remove(filePath);
        //            query.StickerImgPath = JsonConvert.SerializeObject(stickerImgPath);
        //        }
        //        else if (LicenseImgPath.Contains(filePath))
        //        {
        //            LicenseImgPath.Remove(filePath);
        //            query.LicenselmgPath = JsonConvert.SerializeObject(LicenseImgPath);
        //        }
        //        else
        //            throw new IndexOutOfRangeException($"[ERROR]=> 刪除技師圖片,圖片位址對應錯誤");



        //        return db.SaveChanges() > 0;

        //    }


        //}

        /// <summary>
        /// 新增可受理案件
        /// </summary>
        /// <returns></returns>
        public Boolean AddAwaitAcceptLog(string CompCd, string Sn, string Account)
        {
            try
            {
                using (DataBase.SETENG_Entities db = new DataBase.SETENG_Entities())
                {
                    db.Configuration.LazyLoadingEnabled = false;

                    var callog = db.TCALLOG
                                 .SingleOrDefault(x => x.Comp_Cd == CompCd &&
                                                  x.Sn == Sn);

                    if (callog == null)
                    {
                        throw new NullReferenceException("[ERROR]=>技師新增可受理案件時,找不到案件資訊");
                    }

                    var technician = db.TVenderTechnician
                                     .Include("TCALLOG")
                                     .SingleOrDefault(x => x.Comp_Cd == callog.Comp_Cd &&
                                                      x.Vender_Cd == callog.Vender_Cd &&
                                                      x.Account == Account);

                    if (technician == null)
                    {
                        throw new NullReferenceException("[ERROR]=>技師新增可受理案件時,找不到技師資訊");
                    }

                    technician.TCALLOG.Add(callog);

                    return(db.SaveChanges() > 0);
                }
            }
            catch (Exception ex)
            {
                return(false);
            }
        }
Esempio n. 15
0
        /// <summary>
        /// 查詢照片
        /// </summary>
        public IEnumerable <string> SearchImg(string CompCd, string Sn, int img)
        {
            List <string> resault = new List <string>();

            DataBase.SETENG_Entities db = new DataBase.SETENG_Entities();
            var table = db.TCALIMG.Where(x => x.Comp_Cd == CompCd && x.Sn == Sn && x.Img_Type == img.ToString());

            if (table.ToList().Count == 0)
            {
                return(resault);
            }
            else
            {
                foreach (var FileSeq in table.Select(x => x.File_Seq))
                {
                    var File = db.TUpFile.Where(x => x.File_Seq == FileSeq).FirstOrDefault();
                    var data = _getCallLogFile.GetFile(Sn, CompCd, File.File_Name);
                    resault.Add("data:image/jpeg;base64," + Convert.ToBase64String(data.ImgFile));
                }
            }

            return(resault);
        }
Esempio n. 16
0
        /// <summary>
        /// 新增照片
        /// </summary>
        public void AddImg(Tcallog input)
        {
            DataBase.SETENG_Entities db = new DataBase.SETENG_Entities();
            var resault = db.TCALIMG.Where(x => x.Comp_Cd == input.CompCd && x.Sn == input.Sn);

            if (resault.ToList().Count > 0)
            {
                foreach (var seq in resault.Select(x => x.File_Seq).ToList())
                {
                    var query = db.TUpFile.Where(x => x.File_Seq == seq);
                    foreach (var item in query)
                    {
                        bool success = _getCallLogFile.DelFile(input.Sn, input.CompCd, item.File_Name);
                        if (!success)
                        {
                            _logger.Error("圖片刪除錯誤-檔名: " + item.File_Name);
                        }
                    }
                    db.TUpFile.RemoveRange(query);
                }
                db.TCALIMG.RemoveRange(resault);
                db.SaveChanges();
            }
            foreach (var img in input.ImgBeforeFix)
            {
                int index = 0;
                var table = db.TCALIMG.Where(x => x.Comp_Cd == input.CompCd && x.Sn == input.Sn);
                if (table.ToList().Count == 0)
                {
                    index = 1;
                }
                else
                {
                    index = table.Max(x => x.Seq);
                    index = index + 1;
                }
                DataBase.TUpFile item = new DataBase.TUpFile();
                item.Create_Date = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss");
                item.Create_User = input.AcceptedName;
                item.Doc_Type    = "jpg";
                item.File_Name   = String.Format("{0}-{1}-{2}.jpg", input.CompCd, input.Sn, index);
                item.Pgm_Id      = "手機上傳";
                item.File_Size   = 0;
                db.TUpFile.Add(item);
                db.SaveChanges();

                DataBase.TUpFile Upfile  = db.TUpFile.Where(x => x.File_Name == item.File_Name).FirstOrDefault();
                DataBase.TCALIMG itemImg = new DataBase.TCALIMG();
                itemImg.Comp_Cd  = input.CompCd;
                itemImg.File_Seq = Upfile.File_Seq;
                itemImg.Img_Type = ((int)ImgType.BeforeFix).ToString();
                itemImg.Seq      = (byte)index;
                itemImg.Sn       = input.Sn;
                db.TCALIMG.Add(itemImg);
                db.SaveChanges();

                uploadImage(img, input.Sn, input.CompCd, item.File_Name);
            }
            foreach (var img in input.ImgAfterFix)
            {
                int index = 0;
                var table = db.TCALIMG.Where(x => x.Comp_Cd == input.CompCd && x.Sn == input.Sn);
                if (table.ToList().Count == 0)
                {
                    index = 1;
                }
                else
                {
                    index = table.Max(x => x.Seq);
                    index = index + 1;
                }
                DataBase.TUpFile item = new DataBase.TUpFile();
                item.Create_Date = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss");
                item.Create_User = input.AcceptedName;
                item.Doc_Type    = "jpg";
                item.File_Name   = String.Format("{0}-{1}-{2}.jpg", input.CompCd, input.Sn, index);
                item.Pgm_Id      = "手機上傳";
                item.File_Size   = 0;
                db.TUpFile.Add(item);
                db.SaveChanges();

                DataBase.TUpFile Upfile  = db.TUpFile.Where(x => x.File_Name == item.File_Name).FirstOrDefault();
                DataBase.TCALIMG itemImg = new DataBase.TCALIMG();
                itemImg.Comp_Cd  = input.CompCd;
                itemImg.File_Seq = Upfile.File_Seq;
                itemImg.Img_Type = ((int)ImgType.AfterFix).ToString();
                itemImg.Seq      = (byte)index;
                itemImg.Sn       = input.Sn;
                db.TCALIMG.Add(itemImg);
                db.SaveChanges();
                uploadImage(img, input.Sn, input.CompCd, item.File_Name);
            }

            foreach (var img in input.Img)
            {
                int index = 0;
                var table = db.TCALIMG.Where(x => x.Comp_Cd == input.CompCd && x.Sn == input.Sn);
                if (table.ToList().Count == 0)
                {
                    index = 1;
                }
                else
                {
                    index = table.Max(x => x.Seq);
                    index = index + 1;
                }
                DataBase.TUpFile item = new DataBase.TUpFile();
                item.Create_Date = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss");
                item.Create_User = input.AcceptedName;
                item.Doc_Type    = "jpg";
                item.File_Name   = String.Format("{0}-{1}-{2}.jpg", input.CompCd, input.Sn, index);
                item.Pgm_Id      = "手機上傳";
                item.File_Size   = 0;
                db.TUpFile.Add(item);
                db.SaveChanges();

                DataBase.TUpFile Upfile  = db.TUpFile.Where(x => x.File_Name == item.File_Name).FirstOrDefault();
                DataBase.TCALIMG itemImg = new DataBase.TCALIMG();
                itemImg.Comp_Cd  = input.CompCd;
                itemImg.File_Seq = Upfile.File_Seq;
                itemImg.Img_Type = ((int)ImgType.Workorder).ToString();
                itemImg.Seq      = (byte)index;
                itemImg.Sn       = input.Sn;
                db.TCALIMG.Add(itemImg);
                db.SaveChanges();
                uploadImage(img, input.Sn, input.CompCd, item.File_Name);
            }
            foreach (var img in input.ImgSignature)
            {
                int index = 0;
                var table = db.TCALIMG.Where(x => x.Comp_Cd == input.CompCd && x.Sn == input.Sn);
                if (table.Count() == 0)
                {
                    index = 1;
                }
                else
                {
                    index = table.Max(x => x.Seq);
                    index = index + 1;
                }
                DataBase.TUpFile item = new DataBase.TUpFile();
                item.Create_Date = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss");
                item.Create_User = input.AcceptedName;
                item.Doc_Type    = "jpg";
                item.File_Name   = String.Format("{0}-{1}-{2}.jpg", input.CompCd, input.Sn, index);
                item.Pgm_Id      = "手機上傳";
                item.File_Size   = 0;
                db.TUpFile.Add(item);
                db.SaveChanges();

                DataBase.TUpFile Upfile  = db.TUpFile.Where(x => x.File_Name == item.File_Name).FirstOrDefault();
                DataBase.TCALIMG itemImg = new DataBase.TCALIMG();
                itemImg.Comp_Cd  = input.CompCd;
                itemImg.File_Seq = Upfile.File_Seq;
                itemImg.Img_Type = ((int)ImgType.Signature).ToString();
                itemImg.Seq      = (byte)index;
                itemImg.Sn       = input.Sn;
                db.TCALIMG.Add(itemImg);
                db.SaveChanges();

                uploadImage(img, input.Sn, input.CompCd, item.File_Name);
            }
        }
Esempio n. 17
0
 /// <summary>
 /// 取得門市店名
 /// </summary>
 public string GetStoreName(string CompCd, string StoreCd)
 {
     DataBase.SETENG_Entities db = new DataBase.SETENG_Entities();
     return(db.TSTRMST.Where(x => x.Comp_Cd == CompCd && x.Store_Cd == StoreCd).Select(y => y.Store_Name).FirstOrDefault());
 }