public void MigrateOldDb(DateTime dtFrom, DateTime dtTo)
        {
            var categories = dbContext.Categories.AsNoTracking().ToList();

            dtFrom = dtFrom.Date;
            dtTo   = dtTo.Date + new TimeSpan(23, 59, 59);
            var oldABMCs = dbContext.ABMCs.AsNoTracking().ToList();

            foreach (var oldABMC in oldABMCs)
            {
                var category = categories.FirstOrDefault(a => a.CategoryIdOld == oldABMC.CATID);

                var weekDetail = new WeekDetail(oldABMC.DT);

                var newActualBaleMC = new ActualBalesMC()
                {
                    CategoryId = category?.CategoryId ?? 0,
                    DT         = oldABMC.DT,
                    FirstDay   = weekDetail.FirstDay,
                    LastDay    = weekDetail.LastDay,
                    MC         = oldABMC.MC,
                    WeekDay    = weekDetail.WeekDay,
                    WeekNum    = weekDetail.WeekNum
                };

                dbContext.ActualBalesMCs.Add(newActualBaleMC);
                dbContext.SaveChanges();
            }
            ;
        }
        public Dictionary <string, string> Validate(ActualBalesMC model)
        {
            var modelErrors    = new Dictionary <string, string>();
            var duplicateCount = dbContext.ActualBalesMCs.AsNoTracking().Count(a => a.CategoryId == model.CategoryId && a.DT == model.DT && a.ActualBalesMCId != model.ActualBalesMCId);

            if (duplicateCount > 0)
            {
                modelErrors.Add(nameof(model.CategoryId), "Entry already exists");
            }
            return(modelErrors);
        }
        public ActualBalesMC Create(ActualBalesMC model)
        {
            var weekDetail = new WeekDetail(model.DT);

            model.WeekDay  = weekDetail.WeekDay;
            model.WeekNum  = weekDetail.WeekNum;
            model.FirstDay = weekDetail.FirstDay;
            model.LastDay  = weekDetail.LastDay;
            dbContext.ActualBalesMCs.Add(model);
            dbContext.SaveChanges();
            return(model);
        }
        private bool validateEntity(ActualBalesMC model)
        {
            var modelErrors = repository.Validate(model);

            if (modelErrors.Count > 0)
            {
                foreach (var modelError in modelErrors)
                {
                    ModelState.AddModelError(modelError.Key, modelError.Value);
                }
            }
            return(ModelState.ErrorCount == 0);
        }
 public bool Delete(ActualBalesMC model)
 {
     try
     {
         dbContext.ActualBalesMCs.Remove(model);
         dbContext.SaveChanges();
         return(true);
     }
     catch (Exception ex)
     {
         logger.LogError(ex.GetExceptionMessages());
         return(false);
     }
 }
        public ActualBalesMC Update(ActualBalesMC model)
        {
            var entity = dbContext.ActualBalesMCs.Find(model.ActualBalesMCId);

            if (entity == null)
            {
                throw new Exception("Selected Record does not exists.");
            }

            entity.CategoryId = model.CategoryId;
            entity.MC         = model.MC;
            entity.DT         = model.DT;

            dbContext.ActualBalesMCs.Update(entity);
            dbContext.SaveChanges();
            return(entity);
        }
        public IActionResult Put([FromBody] ActualBalesMC model)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(InvalidModelStateResult());
                }
                if (!validateEntity(model))
                {
                    return(InvalidModelStateResult());
                }

                return(Accepted(repository.Update(model)));
            }
            catch (Exception ex)
            {
                logger.LogError(ex.GetExceptionMessages());
                return(StatusCode(StatusCodes.Status500InternalServerError, Constants.ErrorMessages.UpdateError));
            }
        }