public ActionResult Create(Template _Template)
 {
     using (var ctx = new DynamicParameterContext())
     {
         if (_Template.TemplateID != 0)
         {
             Template temp = ctx.Templates.Where(m => m.TemplateID == _Template.TemplateID).FirstOrDefault();
             temp.Name = _Template.Name;
         }
         else
         {
             ctx.Templates.Add(_Template);
         }
         ctx.SaveChanges();
     }
     return(RedirectToAction("Index"));
 }
Example #2
0
        public ActionResult Create(TemplateParameters _TemplateParameters)
        {
            using (var ctx = new DynamicParameterContext())
            {
                //Check If New Model Or Existing Model
                if (_TemplateParameters.TemplateParameterID != 0)
                {
                    TemplateParameters temp = ctx.TemplateParameters.Where(m => m.TemplateParameterID == _TemplateParameters.TemplateParameterID).FirstOrDefault();
                    temp.Name          = _TemplateParameters.Name;
                    temp.Value         = _TemplateParameters.Value;
                    temp.Type          = _TemplateParameters.Type;
                    temp.AllowMultiple = _TemplateParameters.AllowMultiple;
                }
                else
                {
                    ctx.TemplateParameters.Add(_TemplateParameters);
                }

                //Add Parameter Values
                if (_TemplateParameters.ParameterValues.Count > 0)
                {
                    //Remove All Template Parameter Values From DB Based On Template Parameter ID
                    var tpv = ctx.TemplateParameterValues.Where(x => x.TemplateParameterID == _TemplateParameters.TemplateParameterID);
                    if (tpv.Any())
                    {
                        ctx.TemplateParameterValues.RemoveRange(tpv);
                    }

                    //Remove Deleted Values On ClientSide
                    _TemplateParameters.ParameterValues.RemoveAll(x => x.Deleted == true);

                    //Add New Template Parameter Values To DB
                    foreach (TemplateParameterValues t in _TemplateParameters.ParameterValues)
                    {
                        ctx.TemplateParameterValues.Add(t);
                    }
                }

                //Add Parameter Defaults
                if (_TemplateParameters.ParameterDefaults.Count > 0)
                {
                    //Remove All Template Parameter Values From DB Based On Template Parameter ID
                    var tpd = ctx.TemplateParameterDefaults.Where(x => x.TemplateParameterID == _TemplateParameters.TemplateParameterID);
                    if (tpd.Any())
                    {
                        ctx.TemplateParameterDefaults.RemoveRange(tpd);
                    }

                    //Remove Deleted Values On ClientSide
                    _TemplateParameters.ParameterDefaults.RemoveAll(x => x.Deleted == true);

                    //Add New Template Parameter Values To DB
                    foreach (TemplateParameterDefaults t in _TemplateParameters.ParameterDefaults)
                    {
                        if (_TemplateParameters.ParameterValues.Any(x => x.Value == t.Value))
                        {
                            ctx.TemplateParameterDefaults.Add(t);
                        }
                        else
                        {
                            ModelState.AddModelError("", "Some of the default values are not found in available values. please check once.");
                            break;
                        }
                    }
                }

                //Save Changes To DB
                if (ModelState.IsValid)
                {
                    ctx.SaveChanges();
                }
                else
                {
                    return(View(_TemplateParameters));
                }
            }
            return(RedirectToAction("Index", new { ID = _TemplateParameters.TemplateParameterID }));
        }