示例#1
0
        public async Task <bool> UpdateRange(string listID)
        {
            if (listID == null)
            {
                return(false);
            }
            if (listID.Length > 0)
            {
                var arr  = listID.Split(',').Select(Int32.Parse).ToList();
                var some = await _dbContext.NotificationDetails.Where(x => arr.Contains(x.ID)).ToListAsync();

                some.ForEach(a => a.Seen = true);
                try
                {
                    await _dbContext.SaveChangesAsync();

                    return(true);
                }
                catch (Exception)
                {
                    return(false);
                }
            }

            return(false);
        }
        public async Task <ActionResult> Create(Setting setting)
        {
            if (ModelState.IsValid)
            {
                db.Settings.Add(setting);
                await db.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }

            return(View(setting));
        }
示例#3
0
        public async Task <Comment> CreateComment(Comment comment)
        {
            try
            {
                _dbContext.Comments.Add(comment);
                await _dbContext.SaveChangesAsync();

                return(comment);
            }
            catch (Exception)
            {
                return(comment);
            }
        }
示例#4
0
        public async Task <ActionResult> Create(MenuViewModel menuvm)
        {
            if (ModelState.IsValid)
            {
                var menu = new Menu
                {
                    ID             = menuvm.ID,
                    Name           = menuvm.LangNameEn,
                    BackgroudColor = menuvm.BackgroudColor,
                    FontAwesome    = menuvm.FontAwesome,
                    Permission     = menuvm.Permission,
                    Position       = menuvm.Position,
                    Link           = menuvm.Link
                };

                db.Menus.Add(menu);
                await db.SaveChangesAsync();

                var listMenuLang = new List <MenuLang>();
                var menulang     = new MenuLang
                {
                    MenuID = menu.ID,
                    Name   = menuvm.LangNameEn,
                    LangID = "en"
                };
                listMenuLang.Add(menulang);
                var menulangVi = new MenuLang
                {
                    MenuID = menu.ID,
                    Name   = menuvm.LangNameVi,
                    LangID = "vi"
                };
                listMenuLang.Add(menulangVi);

                var menulangTw = new MenuLang
                {
                    MenuID = menu.ID,
                    Name   = menuvm.LangNameTw,
                    LangID = "tw"
                };
                listMenuLang.Add(menulangTw);

                db.MenuLangs.AddRange(listMenuLang);
                await db.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }

            return(View(menuvm));
        }
示例#5
0
        public async Task <bool> Add(EF.Favourite entity)
        {
            try
            {
                _dbContext.Favourites.Add(entity);
                await _dbContext.SaveChangesAsync();

                return(true);
            }
            catch (Exception ex)
            {
                var message = ex.Message;
                return(false);
            }
        }
示例#6
0
        public async Task <bool> Add(EF.Category entity)
        {
            entity.Code = entity.Code.ToUpper();

            try
            {
                _dbContext.Categories.Add(entity);
                await _dbContext.SaveChangesAsync();

                return(true);
            }
            catch (Exception ex)
            {
                var message = ex.Message;
                return(false);
            }
        }
示例#7
0
        public async Task <bool> Add(EF.KPI entity)
        {
            try
            {
                for (int i = 1; i < 10000; i++)
                {
                    string code = i.ToString("D4");
                    if (await _dbContext.KPIs.FirstOrDefaultAsync(x => x.Code == code) == null)
                    {
                        entity.Code = code;
                        break;
                    }
                }

                _dbContext.KPIs.Add(entity);
                await _dbContext.SaveChangesAsync();

                List <EF.KPILevel> kpiLevelList = new List <EF.KPILevel>();
                var levels = _dbContext.Levels.ToList();

                foreach (var level in levels)
                {
                    var kpilevel = new EF.KPILevel();
                    kpilevel.LevelID = level.ID;
                    kpilevel.KPIID   = entity.ID;
                    kpiLevelList.Add(kpilevel);
                }

                _dbContext.KPILevels.AddRange(kpiLevelList);
                _dbContext.SaveChanges();

                return(true);
            }
            catch (Exception)
            {
                return(false);
            }
        }
示例#8
0
        public async Task <int> Add(EF.User entity)
        {
            entity.Code = entity.Code.ToSafetyString().ToUpper();
            List <EF.KPILevel> kpiLevelList = new List <EF.KPILevel>();

            try
            {
                entity.Password = entity.Password.SHA256Hash();
                entity.State    = true;
                entity.IsActive = true;
                _dbContext.Users.Add(entity);
                await _dbContext.SaveChangesAsync();

                var kpiVM = await(from kpi in _dbContext.KPIs
                                  join cat in _dbContext.Categories on kpi.CategoryID equals cat.ID
                                  select new KPIViewModel
                {
                    KPIID = kpi.ID,
                }).ToListAsync();
                foreach (var kpi in kpiVM)
                {
                    var kpilevel = new EF.KPILevel();
                    kpilevel.LevelID = entity.ID;
                    kpilevel.KPIID   = kpi.KPIID;
                    kpiLevelList.Add(kpilevel);
                }

                _dbContext.KPILevels.AddRange(kpiLevelList);
                await _dbContext.SaveChangesAsync();

                return(1);
            }
            catch
            {
                return(0);
            }
        }
        /// <summary>
        /// Thêm user vao cac bang pic, owner, manager, sponsor, participant
        /// </summary>
        /// <param name="kpilevelID"></param>
        /// <param name="categoryID"></param>
        /// <param name="picArr"></param>
        /// <param name="ownerArr"></param>
        /// <param name="managerArr"></param>
        /// <param name="sponsorArr"></param>
        /// <param name="participantArr"></param>
        /// <returns></returns>
        public async Task <bool> AddGeneral(int kpilevelID, int categoryID, string picArr, string ownerArr, string managerArr, string sponsorArr, string participantArr)
        {
            if (!picArr.IsNullOrEmpty())
            {
                if (picArr.IndexOf(',') != -1)
                {
                    foreach (var item in picArr.Split(','))
                    {
                        if (!item.IsNullOrEmpty())
                        {
                            var uploader = new KPILevelDAO().GetByUsername(item.Trim());
                            if (uploader != 0)
                            {
                                //xoa het xong add moi
                                var listUploader = await _dbContext.Uploaders.Where(x => x.KPILevelID == kpilevelID && x.CategoryID == categoryID).ToListAsync();

                                _dbContext.Uploaders.RemoveRange(listUploader);
                                await _dbContext.SaveChangesAsync();

                                _dbContext.Uploaders.Add(new Uploader {
                                    UserID = uploader, KPILevelID = kpilevelID, CategoryID = categoryID
                                });
                            }
                        }
                    }
                }
                else
                {
                    var uploader = new KPILevelDAO().GetByUsername(picArr.Trim());
                    if (uploader != 0)
                    {
                        //xoa het xong add moi
                        var listUploader = await _dbContext.Uploaders.FirstOrDefaultAsync(x => x.KPILevelID == kpilevelID && x.CategoryID == categoryID);

                        _dbContext.Uploaders.Remove(listUploader);
                        await _dbContext.SaveChangesAsync();

                        _dbContext.Uploaders.Add(new Uploader {
                            UserID = uploader, KPILevelID = kpilevelID, CategoryID = categoryID
                        });
                    }
                }
            }
            if (!ownerArr.IsNullOrEmpty())
            {
                if (ownerArr.IndexOf(',') != -1)
                {
                    foreach (var item in ownerArr.Split(','))
                    {
                        if (!item.IsNullOrEmpty())
                        {
                            var owner = new KPILevelDAO().GetByUsername(item.Trim());
                            if (owner != 0)
                            {
                                var listUploader = await _dbContext.Owners.Where(x => x.KPILevelID == kpilevelID && x.CategoryID == categoryID).ToListAsync();

                                _dbContext.Owners.RemoveRange(listUploader);
                                await _dbContext.SaveChangesAsync();

                                _dbContext.Owners.Add(new Owner {
                                    UserID = owner, KPILevelID = kpilevelID, CategoryID = categoryID
                                });
                            }
                        }
                    }
                }
                else
                {
                    var owner = new KPILevelDAO().GetByUsername(ownerArr.Trim());
                    if (owner != 0)
                    {
                        var listUploader = await _dbContext.Owners.FirstOrDefaultAsync(x => x.KPILevelID == kpilevelID && x.CategoryID == categoryID);

                        _dbContext.Owners.Remove(listUploader);
                        await _dbContext.SaveChangesAsync();

                        _dbContext.Owners.Add(new Owner {
                            UserID = owner, KPILevelID = kpilevelID, CategoryID = categoryID
                        });
                    }
                }
            }
            if (!sponsorArr.IsNullOrEmpty())
            {
                if (sponsorArr.IndexOf(',') != -1)
                {
                    foreach (var item in sponsorArr.Split(','))
                    {
                        if (!item.IsNullOrEmpty())
                        {
                            var sponsor = new KPILevelDAO().GetByUsername(item.Trim());

                            if (sponsor != 0)
                            {
                                var listUploader = await _dbContext.Sponsors.FirstOrDefaultAsync(x => x.KPILevelID == kpilevelID && x.CategoryID == categoryID);

                                _dbContext.Sponsors.Remove(listUploader);
                                await _dbContext.SaveChangesAsync();

                                _dbContext.Sponsors.Add(new Sponsor {
                                    UserID = sponsor, KPILevelID = kpilevelID, CategoryID = categoryID
                                });
                            }
                        }
                    }
                }
                else
                {
                    var sponsor = new KPILevelDAO().GetByUsername(sponsorArr.Trim());

                    if (sponsor != 0)
                    {
                        var listUploader = await _dbContext.Sponsors.Where(x => x.KPILevelID == kpilevelID && x.CategoryID == categoryID).ToListAsync();

                        _dbContext.Sponsors.RemoveRange(listUploader);
                        await _dbContext.SaveChangesAsync();

                        _dbContext.Sponsors.Add(new Sponsor {
                            UserID = sponsor, KPILevelID = kpilevelID, CategoryID = categoryID
                        });
                    }
                }
            }
            if (!participantArr.IsNullOrEmpty())
            {
                if (participantArr.IndexOf(',') != -1)
                {
                    foreach (var item in participantArr.Split(','))
                    {
                        if (!item.IsNullOrEmpty())
                        {
                            var participant = new KPILevelDAO().GetByUsername(item.Trim());
                            if (participant != 0)
                            {
                                var listUploader = await _dbContext.Participants.Where(x => x.KPILevelID == kpilevelID && x.CategoryID == categoryID).ToListAsync();

                                _dbContext.Participants.RemoveRange(listUploader);
                                await _dbContext.SaveChangesAsync();

                                _dbContext.Participants.Add(new Participant {
                                    UserID = participant, KPILevelID = kpilevelID, CategoryID = categoryID
                                });
                            }
                        }
                    }
                }
                else
                {
                    var participant = new KPILevelDAO().GetByUsername(participantArr.Trim());
                    if (participant != 0)
                    {
                        var listUploader = await _dbContext.Participants.FirstOrDefaultAsync(x => x.KPILevelID == kpilevelID && x.CategoryID == categoryID);

                        _dbContext.Participants.Remove(listUploader);
                        await _dbContext.SaveChangesAsync();

                        _dbContext.Participants.Add(new Participant {
                            UserID = participant, KPILevelID = kpilevelID, CategoryID = categoryID
                        });
                    }
                }
            }
            if (!managerArr.IsNullOrEmpty())
            {
                if (managerArr.IndexOf(',') != -1)
                {
                    foreach (var item in managerArr.Split(','))
                    {
                        if (!item.IsNullOrEmpty())
                        {
                            var manager = new KPILevelDAO().GetByUsername(item.Trim());
                            if (manager != 0)
                            {
                                var listUploader = await _dbContext.Managers.Where(x => x.KPILevelID == kpilevelID && x.CategoryID == categoryID).ToListAsync();

                                _dbContext.Managers.RemoveRange(listUploader);
                                await _dbContext.SaveChangesAsync();

                                _dbContext.Managers.Add(new Manager {
                                    UserID = manager, KPILevelID = kpilevelID, CategoryID = categoryID
                                });
                            }
                        }
                    }
                }
                else
                {
                    var manager = new KPILevelDAO().GetByUsername(managerArr.Trim());
                    if (manager != 0)
                    {
                        var listUploader = await _dbContext.Managers.FirstOrDefaultAsync(x => x.KPILevelID == kpilevelID && x.CategoryID == categoryID);

                        _dbContext.Managers.Remove(listUploader);
                        await _dbContext.SaveChangesAsync();

                        _dbContext.Managers.Add(new Manager {
                            UserID = manager, KPILevelID = kpilevelID, CategoryID = categoryID
                        });
                    }
                }
            }
            try
            {
                _dbContext.SaveChanges();
                return(true);
            }
            catch (Exception)
            {
                return(false);
            }
        }
示例#10
0
        public async Task <bool> AddOrUpdate(Level entity)
        {
            entity.Code = entity.Code.ToUpper();
            List <EF.KPILevel> kpiLevelList = new List <KPILevel>();

            if (entity.ID == 0)
            {
                if (await _dbContext.Levels.FirstOrDefaultAsync(x => x.Code == entity.Code) != null)
                {
                    return(false);
                }
                try
                {
                    var level = new Level()
                    {
                        Name        = entity.Name,
                        Code        = entity.Code,
                        LevelNumber = entity.LevelNumber,
                        ParentCode  = entity.ParentCode,
                        ParentID    = entity.ParentID
                    };
                    _dbContext.Levels.Add(level);

                    await _dbContext.SaveChangesAsync();

                    var kpiVM = await _dbContext.KPIs.ToListAsync();

                    kpiVM.ForEach(x =>
                    {
                        var kpilevel     = new EF.KPILevel();
                        kpilevel.LevelID = level.ID;
                        kpilevel.KPIID   = x.ID;
                        kpiLevelList.Add(kpilevel);
                    });
                    //foreach (var kpi in kpiVM)
                    //{
                    //    var kpilevel = new EF.KPILevel();
                    //    kpilevel.LevelID = level.ID;
                    //    kpilevel.KPIID = kpi.KPIID;
                    //    kpiLevelList.Add(kpilevel);
                    //}
                    _dbContext.KPILevels.AddRange(kpiLevelList);
                    await _dbContext.SaveChangesAsync();

                    return(true);
                }
                catch (Exception ex)
                {
                    var message = ex.Message;
                    return(false);
                }
            }
            else
            {
                try
                {
                    var item = await _dbContext.Levels.FirstOrDefaultAsync(x => x.ID == entity.ID);

                    item.Code        = entity.Code;
                    item.Name        = entity.Name;
                    item.LevelNumber = entity.LevelNumber;
                    item.ParentID    = entity.ParentID;
                    await _dbContext.SaveChangesAsync();

                    return(true);
                }
                catch (Exception ex)
                {
                    var message = ex.Message;
                    return(false);
                }
            }
        }
示例#11
0
        public async Task Execute(IJobExecutionContext context)
        {
            //throw new NotImplementedException();
            string from = ConfigurationManager.AppSettings["FromEmailAddress"].ToSafetyString();
            string host = ConfigurationManager.AppSettings["Http"].ToSafetyString();

            string content2 = System.IO.File.ReadAllText(host + "/Templates/LateOnUpDateData.html");

            content2 = content2.Replace("{{{content}}}", "Your below KPIs have expired: ");

            string content = System.IO.File.ReadAllText(host + "/Templates/LateOnTask.html");

            content = content.Replace("{{{content}}}", "Your below KPIs have expired: ");
            var html   = string.Empty;
            var count  = 0;
            var model2 = new ActionPlanDAO().CheckLateOnUpdateData(1);
            var model  = new ActionPlanDAO().CheckDeadline();

            if (await new SettingDAO().IsSendMail("CHECKLATEONUPDATEDATA"))
            {
                foreach (var item2 in model2.Item1)
                {
                    count++;
                    html += @"<tr>
                            <td valign='top' style='padding:5px; font-family: Arial,sans-serif; font-size: 16px; line-height:20px;'>{{no}}</td>
                            <td valign='top' style='padding:5px; font-family: Arial,sans-serif; font-size: 16px; line-height:20px;'>{{kpiname}}</td>
                            <td valign='top' style='padding:5px; font-family: Arial,sans-serif; font-size: 16px; line-height:20px;'>{{year}}</td>
                             </tr>"
                            .Replace("{{no}}", count.ToSafetyString())
                            .Replace("{{kpiname}}", item2[0].ToSafetyString())
                            .Replace("{{year}}", item2[1].ToSafetyString());
                    content2 = content2.Replace("{{{html-template}}}", html);
                }
                Commons.SendMail(model2.Item2.Select(x => x.Email).ToList(), "[KPI System] Late on upload data", content2, "Late on upload data");
            }

            if (await new SettingDAO().IsSendMail("CHECKDEADLINE"))
            {
                foreach (var item in model.Item1)
                {
                    //string content = "Please note that the action plan we are overdue on " + item.Deadline;
                    count++;
                    html += @"<tr>
                            <td valign='top' style='padding:5px; font-family: Arial,sans-serif; font-size: 16px; line-height:20px;'>{{no}}</td>
                            <td valign='top' style='padding:5px; font-family: Arial,sans-serif; font-size: 16px; line-height:20px;'>{{kpiname}}</td>
                            <td valign='top' style='padding:5px; font-family: Arial,sans-serif; font-size: 16px; line-height:20px;'>{{deadline}}</td>
                             </tr>"
                            .Replace("{{no}}", count.ToString())
                            .Replace("{{kpiname}}", item[0].ToSafetyString())
                            .Replace("{{deadline}}", item[1].ToSafetyString("MM/dd/yyyy"));
                    content = content.Replace("{{{html-template}}}", html);
                }
                Commons.SendMail(model.Item2.Select(x => x.Email).ToList(), "[KPI System] Late on task", content, "Late on task ");
            }
            var itemSendMail = new StateSendMail();

            await new NotificationDAO().AddSendMail(itemSendMail);
            var hh    = ConfigurationManager.AppSettings["hh"].ToInt();
            var mm    = ConfigurationManager.AppSettings["mm"].ToInt();
            var db    = new KPIDbContext();
            var items = new ErrorMessage()
            {
                Function = "Test window service " + hh + ":" + mm,
                Name     = "EmailJob"
            };

            db.ErrorMessages.Add(items);
            await db.SaveChangesAsync();

            db.Dispose();
        }