public void Remove(LookUpUserCode UserCode)
 {
     if (Context.Entry(UserCode).State == EntityState.Detached)
     {
         context.LookUpUserCodes.Attach(UserCode);
     }
     context.LookUpUserCodes.Remove(UserCode);
 }
        public ActionResult AddOption(SelectOptionsViewModel model)
        {
            var message = "OK,";

            if (ModelState.IsValid)
            {
                if (model.IsLookUp == 1) ///Lookup Code
                {
                    var lookupCodes = _hrUnitOfWork.Repository <LookUpCode>().Where(c => c.CodeName == model.SourceName).ToList();
                    if (lookupCodes.Count == 0)
                    {
                        return(Json(2));
                    }
                    var isExists = lookupCodes.Where(c => c.Name == model._Name).FirstOrDefault() != null;
                    if (isExists)
                    {
                        ModelState.AddModelError("_Name", MsgUtils.Instance.Trls("AlreadyExists"));
                        return(Json(Models.Utils.ParseFormErrors(ModelState)));
                    }
                    else
                    {
                        LookUpCode newLookupCode = new LookUpCode();
                        var        codeId        = (short)(lookupCodes.Count == 0 ? 1 : lookupCodes.Select(c => c.CodeId).ToList().Max() + 1);
                        model._Id = codeId;
                        newLookupCode.CodeName    = model.SourceName.ToString();
                        newLookupCode.CodeId      = codeId;
                        newLookupCode.Name        = model._Name;
                        newLookupCode.StartDate   = new DateTime(2010, 1, 1);
                        newLookupCode.CreatedTime = DateTime.Now;
                        newLookupCode.CreatedUser = UserName;
                        _hrUnitOfWork.LookUpRepository.Add(newLookupCode);
                    }
                }
                else if (model.IsLookUp == 2)///Lookup User Code
                {
                    LookUpUserCode newUserCode = new LookUpUserCode();
                    var            userCodes   = _hrUnitOfWork.Repository <LookUpUserCode>().Where(c => c.CodeName == model.SourceName).ToList();
                    var            isExists    = userCodes.Where(c => c.Name == model._Name).FirstOrDefault() != null;
                    if (isExists)
                    {
                        ModelState.AddModelError("_Name", MsgUtils.Instance.Trls("AlreadyExists"));
                        return(Json(Models.Utils.ParseFormErrors(ModelState)));
                    }
                    else
                    {
                        var codeId = (short)(userCodes.Count == 0 ? 1 : userCodes.Select(c => c.CodeId).ToList().Max() + 1);
                        model._Id            = codeId;
                        newUserCode.CodeName = model.SourceName.ToString();
                        newUserCode.CodeId   = codeId;
                        newUserCode.Name     = model._Name;
                        if (model.ColumnsNames == null)
                        {
                            ModelState.AddModelError("SysCodeId", MsgUtils.Instance.Trls("Required"));
                            return(Json(Models.Utils.ParseFormErrors(ModelState)));
                        }
                        int  index = model.ColumnsNames.FindIndex(c => c == "SysCodeId");
                        byte sysCodeId;
                        byte.TryParse(model.ColumnsValue[index], out sysCodeId);
                        newUserCode.SysCodeId   = sysCodeId;
                        newUserCode.StartDate   = new DateTime(2010, 1, 1);
                        newUserCode.CreatedTime = DateTime.Now;
                        newUserCode.CreatedUser = UserName;
                        _hrUnitOfWork.LookUpRepository.Add(newUserCode);
                    }
                }
                else if (model.SourceName != null)///Object
                {
                    // get table name from the object
                    var tableName = _hrUnitOfWork.Repository <PageDiv>().Where(p => p.CompanyId == CompanyId && p.ObjectName == model.SourceName && p.Version == 0).Select(p => p.TableName).FirstOrDefault();
                    if (tableName.Length == 0)
                    {
                        return(Json("Table is not exist in page tables"));
                    }

                    model.ColumnsNames.Add("CreatedUser");
                    model.ColumnsNames.Add("CreatedTime");
                    model.ColumnsValue.Add(UserName);
                    model.ColumnsValue.Add(DateTime.Now + "");

                    var res = _hrUnitOfWork.PagesRepository.AddToTable(model, tableName, CompanyId);
                    if (res == 0) //Saved Fail
                    {
                        return(Json(MsgUtils.Instance.Trls("CanotSaveData")));
                    }
                    else
                    {
                        model._Id = res;
                    }
                }

                var Errors = SaveChanges(Language);
                if (Errors.Count > 0 || message.IndexOf("OK") < 0)
                {
                    message = Errors.First().errors.First().message;
                }
                else
                {
                    if (model.IsLookUp == 1)
                    {
                        model.seqId = _hrUnitOfWork.Repository <LookUpCode>().Where(c => c.CodeName == model.SourceName && c.CodeId == model._Id && c.Name == model._Name).FirstOrDefault().Id;
                    }
                    message += (new JavaScriptSerializer()).Serialize(model);
                }
                return(Json(message));
            }
            return(Json(Models.Utils.ParseFormErrors(ModelState)));
        }
 public DbEntityEntry <LookUpUserCode> Entry(LookUpUserCode lookupusercode)
 {
     return(Context.Entry(lookupusercode));
 }
 public void Attach(LookUpUserCode lookupusercode)
 {
     context.LookUpUserCodes.Attach(lookupusercode);
 }
 public void Add(LookUpUserCode lookupusercode)
 {
     context.LookUpUserCodes.Add(lookupusercode);
 }
        public void UpdateLookUpUserCode(IEnumerable <LookupUserCodeViewModel> models, string culture, string name)
        {
            if (models == null)
            {
                return;
            }
            var codeName = models.First().CodeName;
            var db       = context.LookUpUserCodes.ToList();
            var titiles  = context.LookUpTitles.Where(a => a.CodeName == codeName && a.Culture == culture).ToList();

            foreach (var model in models)
            {
                var record = db.FirstOrDefault(a => a.Id == model.Id);
                var title  = titiles.FirstOrDefault(a => a.CodeId == model.CodeId);

                if (record == null)
                {
                    //insert
                    var UserCode = new LookUpUserCode
                    {
                        SysCodeId   = model.SysCodeId,
                        CodeId      = model.CodeId,
                        Name        = model.Name,
                        Description = model.Description,
                        EndDate     = model.EndDate,
                        CreatedUser = name,
                        StartDate   = model.StartDate,
                        CodeName    = model.CodeName,
                        CreatedTime = DateTime.Now
                    };
                    context.LookUpUserCodes.Add(UserCode);
                }
                //Update
                else
                {
                    record.Id           = model.Id;
                    record.Name         = model.Name;
                    record.ModifiedTime = DateTime.Now;
                    record.ModifiedUser = name;
                    record.SysCodeId    = model.SysCodeId;
                    record.StartDate    = model.StartDate;
                    record.EndDate      = model.EndDate;
                    record.Description  = model.Description;
                    record.CodeId       = model.CodeId;
                    record.CodeName     = model.CodeName;
                    context.LookUpUserCodes.Attach(record);
                    context.Entry(record).State = EntityState.Modified;
                }
                //  if title changed update && insert
                if (title != null)
                {
                    title.CodeId   = model.CodeId;
                    title.CodeName = model.CodeName;
                    title.Name     = model.Name;
                    title.Title    = model.Title;
                    context.LookUpTitles.Attach(title);
                    context.Entry(title).State = EntityState.Modified;
                }
                else
                {
                    var Lookuptitle = new LookUpTitles
                    {
                        Culture  = culture,
                        CodeName = model.CodeName,
                        Name     = model.Name,
                        Title    = model.Title,
                        CodeId   = model.CodeId
                    };
                    context.LookUpTitles.Add(Lookuptitle);
                }
            }
        }