public async Task<ActionResult> Copy([Bind(Include = "RebateClientTypeId,ClientTypeID,RebateLevelsTable")] RebateClientType rebateClientType, int sourceClientTypeID)
        {
            if (ModelState.IsValid)
            {
                var existCheck = db.RebateClientTypes.Where(m => m.ClientTypeID == rebateClientType.ClientTypeID).FirstOrDefault();
                if (existCheck == null)
                {
                    var accountId = (from item in db.Accounts
                                     where item.Active
                                     select item.AccountId).First();
                    var newRebateLevelTabel = new RebateLevelsTable() { FromAccountId = accountId, ToAccountId = accountId };
                    db.RebateLevelsTables.Add(newRebateLevelTabel);
                    //await db.SaveChangesAsync();

                    rebateClientType.RebateLevelsTable = newRebateLevelTabel;

                    db.RebateClientTypes.Add(rebateClientType);
                    await db.SaveChangesAsync();

                    await CopyRebateClientType(sourceClientTypeID, rebateClientType.RebateClientTypeId);

                    return RedirectToAction("Edit", new { id = rebateClientType.RebateClientTypeId });
                }
                else
                {
                    await CopyRebateClientType(sourceClientTypeID, existCheck.RebateClientTypeId);

                    return RedirectToAction("Edit", new { id = existCheck.RebateClientTypeId });
                }
            }

            var source = (from item in db.ClientTypes where item.ClientTypeId == sourceClientTypeID select item).First();
            ViewBag.ClientTypeName = source.ClientTypeName;
            var clienttypes = db.ClientTypes.Where(m => m.ClientTypeId != source.ClientTypeId).ToArray();
            ViewBag.ClientTypeID = new SelectList(clienttypes, "ClientTypeID", "ClientTypeName");
            ViewBag.SourceClientTypeID = sourceClientTypeID;
            return View(rebateClientType);
        }
        public async Task<ActionResult> Create([Bind(Include = "RebateClientTypeId,ClientTypeID,RebateLevelsTable")] RebateClientType rebateClientType)
        {
            if (ModelState.IsValid)
            {
                var existCheck = db.RebateClientTypes.Where(m => m.RebateClientTypeId == rebateClientType.RebateClientTypeId).FirstOrDefault();
                if (existCheck == null)
                {
                    var accountId = (from item in db.Accounts
                                     where item.Active
                                     select item.AccountId).First();
                    var newRebateLevelTabel = new RebateLevelsTable() {FromAccountId=accountId, ToAccountId=accountId };
                    db.RebateLevelsTables.Add(newRebateLevelTabel);
                    //await db.SaveChangesAsync();

                    rebateClientType.RebateLevelsTable = newRebateLevelTabel;
                    
                    db.RebateClientTypes.Add(rebateClientType);
                    await db.SaveChangesAsync();
                    return RedirectToAction("Edit", new { id = rebateClientType.RebateClientTypeId });
                }
                else
                {
                    return RedirectToAction("Edit", new { id = existCheck.RebateClientTypeId });
                }
            }

            ViewBag.ClientTypeID = new SelectList(db.ClientTypes, "ClientTypeID", "ClientTypeName");
            return View(rebateClientType);
        }