// GET: SystemSMSTemplates/Edit/5
        public async Task<ActionResult> Edit(int? id,int? clientId)
        {
            if (id == null)
            {
                return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
            }
            SystemSMSTemplate systemSMSTemplate = await db.SystemSMSTemplates.FindAsync(id);
            if (systemSMSTemplate == null)
            {
                return HttpNotFound();
            }

            ViewBag.TemplateVariables = SystemSMSTemplateModel.GetVariableList();
            if (clientId.HasValue)
            {
                ViewBag.ClientID = clientId.Value;
                var client = db.Clients.FirstOrDefault(m => m.ClientId == clientId.Value);
                if (client != null)
                {
                    ViewBag.ClientID = clientId.Value;
                    var template = new SystemSMSTemplateModel(systemSMSTemplate.Text);
                    template.Populate(client, db);
                    ViewBag.Preview = template.Generate();
                }
            }
            return View(systemSMSTemplate);
        }
        public async Task<ActionResult> Edit([Bind(Include = "SystemSMSTemplateId,Description,Text,Active")] SystemSMSTemplate systemSMSTemplate, int? clientId, bool preview)
        {
            if (ModelState.IsValid)
            {
                db.Entry(systemSMSTemplate).State = EntityState.Modified;
                await db.SaveChangesAsync();

                if (preview)
                {
                    if (!clientId.HasValue) clientId = db.Clients.FirstOrDefault(m=>m.Active)?.ClientId;
                    return RedirectToAction("Edit", new {id=systemSMSTemplate.SystemSMSTemplateId, clientId=clientId });
                }
                else
                {
                    return RedirectToAction("Index", new { clientId = clientId });
                }
            }

            ViewBag.TemplateVariables = SystemSMSTemplateModel.GetVariableList();
            if (clientId.HasValue)
            {
                ViewBag.ClientID = clientId.Value;
                var client = db.Clients.FirstOrDefault(m => m.ClientId == clientId.Value);
                if (client != null)
                {
                    ViewBag.ClientID = clientId.Value;
                    var template = new SystemSMSTemplateModel(systemSMSTemplate.Text);
                    template.Populate(client,db);
                    ViewBag.Preview = template.Generate();
                }
            }
            return View(systemSMSTemplate);
        }