Esempio n. 1
0
        public async Task <bool> Add(Level level)
        {
            List <KPILevel> kpiLevelList = new List <KPILevel>();

            if (level.LevelNumber == 0)
            {
                return(false);
            }
            try
            {
                level.Code = await CheckLevelNumberAndGenarateCode(level.LevelNumber ?? 0);

                _dbContext.Levels.Add(level);
                await _dbContext.SaveChangesAsync();

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

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

                return(true);
            }
            catch (Exception ex)
            {
                return(false);
            }
        }
Esempio n. 2
0
        public async Task <bool> AddAsync(KPIVM entity)
        {
            try
            {
                //string code = string.Empty;
                for (int i = 1; i < 10000; i++)
                {
                    string code = i.ToString("D4");
                    if (!await _dbContext.KPIs.AnyAsync(x => x.Code == code))
                    {
                        entity.Code = code;
                        break;
                    }
                }
                var kpi = new KPI {
                    ID = entity.ID, LevelID = 1, CategoryCode = entity.Code, Unit = entity.Unit, Name = entity.NameEn, CreateTime = DateTime.Now, Code = entity.Code
                };
                _dbContext.KPIs.Add(kpi);
                await _dbContext.SaveChangesAsync();

                var listKPILangs = new List <KPILang> {
                    new KPILang {
                        Name = entity.NameVI, LanguageID = "vi", KPIID = kpi.ID
                    },
                    new KPILang {
                        Name = entity.NameTW, LanguageID = "zh-TW", KPIID = kpi.ID
                    },
                    new KPILang {
                        Name = entity.NameEn, LanguageID = "en", KPIID = kpi.ID
                    },
                };
                _dbContext.KPILangs.AddRange(listKPILangs);
                List <KPILevel> kpiLevelList = new List <KPILevel>();
                var             levels       = _dbContext.Levels.ToList();

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

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

                return(true);
            }
            catch (Exception)
            {
                return(false);
            }
        }
Esempio n. 3
0
        //end kpi_kind

        public async Task <bool> AddKPILevel(KPILevel entity)
        {
            _dbContext.KPILevels.Add(entity);
            try
            {
                await _dbContext.SaveChangesAsync();

                return(true);
            }
            catch (Exception)
            {
                return(false);
            }
        }
Esempio n. 4
0
        public async Task <int> AddAsync(User user)
        {
            user.Code = user.Code.ToSafetyString().ToUpper();
            List <KPILevel> kpiLevelList = new List <KPILevel>();

            try
            {
                if ((await _dbContext.Users.FirstOrDefaultAsync(x => x.Email.ToLower().Contains(user.Email.ToLower())) != null))
                {
                    return(3);
                }

                byte[] passwordHash, passwordSalt;
                CreatePasswordHash(user.Password, out passwordHash, out passwordSalt);
                user.Password     = user.Password.SHA256Hash();
                user.PasswordHash = passwordHash;
                user.PasswordSalt = passwordSalt;
                user.State        = true;
                user.IsActive     = true;
                _dbContext.Users.Add(user);
                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 KPILevel();
                    kpilevel.LevelID = user.ID;
                    kpilevel.KPIID   = kpi.KPIID;
                    kpiLevelList.Add(kpilevel);
                }

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

                return(1);
            }
            catch
            {
                return(0);
            }
        }
Esempio n. 5
0
        public async Task <bool> AddOrUpdate(Level entity)
        {
            entity.Code = entity.Code.ToUpper();
            List <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 KPILevel();
                        kpilevel.LevelID = level.ID;
                        kpilevel.KPIID   = x.ID;
                        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);
                }
            }
        }
Esempio n. 6
0
 public async Task <IActionResult> AddKPILevel([FromBody] KPILevel entity)
 {
     return(Ok(await _KPIService.AddKPILevel(entity)));
 }