public FreezerUnit InsertFreezerUnit(FreezerUnit objFreezerUnit)
        {
            using (IDbConnection connection = OpenConnection(dataConnection))
            {
                var result = new FreezerUnit();

                IDbTransaction trn = connection.BeginTransaction();

                string sql = @"INSERT INTO FreezerUnit (FreezerUnitRefNo,FreezerUnitName,CreatedBy,CreatedDate,OrganizationId)
                               VALUES(@FreezerUnitRefNo,@FreezerUnitName,@CreatedBy,@CreatedDate,@OrganizationId);
                               SELECT CAST(SCOPE_IDENTITY() as int)";

                try
                {
                    int internalid = DatabaseCommonRepository.GetInternalIDFromDatabase(connection, trn, typeof(FreezerUnit).Name, "0", 1);
                    objFreezerUnit.FreezerUnitRefNo = "FU/" + internalid;

                    int id = connection.Query <int>(sql, objFreezerUnit, trn).Single();
                    objFreezerUnit.FreezerUnitId = id;
                    //connection.Dispose();
                    InsertLoginHistory(dataConnection, objFreezerUnit.CreatedBy, "Create", "Freezer Unit", id.ToString(), "0");
                    trn.Commit();
                }
                catch (Exception ex)
                {
                    trn.Rollback();
                    objFreezerUnit.FreezerUnitId    = 0;
                    objFreezerUnit.FreezerUnitRefNo = null;
                }
                return(objFreezerUnit);
            }
        }
        public int DeleteFreezerUnit(FreezerUnit objFreezerUnit)
        {
            int result = 0;

            using (IDbConnection connection = OpenConnection(dataConnection))
            {
                string sql = @"Update FreezerUnit Set isActive=0 WHERE FreezerUnitId=@FreezerUnitId";
                try
                {
                    var id = connection.Execute(sql, objFreezerUnit);
                    objFreezerUnit.FreezerUnitId = id;
                    result = 0;
                    InsertLoginHistory(dataConnection, objFreezerUnit.CreatedBy, "Delete", "Freezer Unit", id.ToString(), "0");
                }
                catch (SqlException ex)
                {
                    int err = ex.Errors.Count;
                    if (ex.Errors.Count > 0) // Assume the interesting stuff is in the first error
                    {
                        switch (ex.Errors[0].Number)
                        {
                        case 547:     // Foreign Key violation
                            result = 1;
                            break;

                        default:
                            result = 2;
                            break;
                        }
                    }
                }

                return(result);
            }
        }
        public ActionResult Edit(FreezerUnit model)
        {
            model.OrganizationId = OrganizationId;
            model.CreatedDate    = System.DateTime.Now;
            model.CreatedBy      = UserID.ToString();


            var  repo     = new FreezerUnitRepository();
            bool isexists = repo.IsFieldExists(repo.ConnectionString(), "FreezerUnit", "FreezerUnitName", model.FreezerUnitName, "FreezerUnitId", model.FreezerUnitId);

            if (!isexists)
            {
                var result = new FreezerUnitRepository().UpdateFreezerUnit(model);
                if (result.FreezerUnitId > 0)
                {
                    TempData["Success"]          = "Updated Successfully!";
                    TempData["FreezerUnitRefNo"] = result.FreezerUnitRefNo;
                    return(RedirectToAction("Create"));
                }

                else
                {
                    TempData["error"]            = "Oops!!..Something Went Wrong!!";
                    TempData["FreezerUnitRefNo"] = null;
                    return(View("Create", model));
                }
            }
            else
            {
                TempData["error"]            = "This Name Alredy Exists!!";
                TempData["FreezerUnitRefNo"] = null;
                return(View("Create", model));
            }
        }
        public ActionResult Delete(FreezerUnit model)
        {
            int result = new FreezerUnitRepository().DeleteFreezerUnit(model);

            if (result == 0)
            {
                TempData["Success"]          = "Deleted Successfully!";
                TempData["FreezerUnitRefNo"] = model.FreezerUnitRefNo;
                return(RedirectToAction("Create"));
            }
            else
            {
                if (result == 1)
                {
                    TempData["error"]            = "Sorry!! You Cannot Delete This Freezer Unit. It Is Already In Use";
                    TempData["FreezerUnitRefNo"] = null;
                }
                else
                {
                    TempData["error"]            = "Oops!!..Something Went Wrong!!";
                    TempData["FreezerUnitRefNo"] = null;
                }
                return(RedirectToAction("Create"));
            }
        }
        public ActionResult Create()
        {
            ViewBag.Title = "Create";
            FreezerUnit FreezerUnit = new FreezerUnit();

            FreezerUnit.FreezerUnitRefNo = new FreezerUnitRepository().GetRefNo(FreezerUnit);
            return(View(FreezerUnit));
        }
        public FreezerUnit UpdateFreezerUnit(FreezerUnit objFreezerUnit)
        {
            using (IDbConnection connection = OpenConnection(dataConnection))
            {
                string sql = @"Update FreezerUnit Set FreezerUnitRefNo=@FreezerUnitRefNo,FreezerUnitName=@FreezerUnitName OUTPUT INSERTED.FreezerUnitId WHERE FreezerUnitId=@FreezerUnitId";

                var id = connection.Execute(sql, objFreezerUnit);
                InsertLoginHistory(dataConnection, objFreezerUnit.CreatedBy, "Update", "Freezer Unit", id.ToString(), "0");
                return(objFreezerUnit);
            }
        }
        public string GetRefNo(FreezerUnit objFreezerUnit)
        {
            using (IDbConnection connection = OpenConnection(dataConnection))
            {
                string RefNo  = "";
                var    result = new FreezerUnit();

                IDbTransaction trn = connection.BeginTransaction();

                try
                {
                    int internalid = DatabaseCommonRepository.GetInternalIDFromDatabase(connection, trn, typeof(FreezerUnit).Name, "0", 0);
                    RefNo = "FU/" + internalid;
                    trn.Commit();
                }
                catch (Exception ex)
                {
                    trn.Rollback();
                }
                return(RefNo);
            }
        }