Example #1
0
        public async Task <IActionResult> Edit([Bind("ProdTypeCode,ProdTypeName,ProdTypeDesc,ProdTypeSeq,CompanyCode,Id,Is_Active,Created_Date,Created_By,Updated_Date,Updated_By")] M_ProductionType m_ProductionType)
        {
            if (ModelState.IsValid)
            {
                m_ProductionType.Updated_By = await base.CurrentUserId();

                ResultObject resultObj;

                try
                {
                    using (var prodTypeBll = new ProductionTypeBLL())
                    {
                        resultObj = await prodTypeBll.UpdateProductionType(m_ProductionType);

                        _cache.Remove("CACHE_MASTER_PRODUCTIONTYPE");
                    }

                    return(Json(new { success = true, data = (M_ProductionType)resultObj.ObjectValue, message = "Production Type Update." }));
                }
                catch (Exception ex)
                {
                    return(Json(new { success = false, data = m_ProductionType, message = ex.Message }));
                }
            }

            var err = ModelState.Values.SelectMany(x => x.Errors).Select(x => x.ErrorMessage).ToList();

            return(Json(new { success = false, errors = err, data = m_ProductionType, message = "Update Failed" }));
        }
        public async Task <ResultObject> DeleteProductionType(M_ProductionType prodType)
        {
            var resultObj = new ResultObject {
                RowAffected = -1, ObjectValue = prodType
            };

            using (var context = new MasterDbContext(contextOptions))
            {
                using (var transaction = context.Database.BeginTransaction())
                {
                    try
                    {
                        MySqlParameter[] sqlParams = new MySqlParameter[] {
                            new MySqlParameter("strId", prodType.Id),
                            new MySqlParameter("strDelete_By", prodType.Updated_By)
                        };


                        //Output Parameter no need to define. @`strId`
                        resultObj.RowAffected = await context.Database.ExecuteSqlCommandAsync("call sp_productiontype_delete( ?, ?)", parameters : sqlParams);

                        transaction.Commit();

                        return(resultObj);
                    }
                    catch (Exception ex)
                    {
                        transaction.Rollback();
                        throw ex;
                    }
                }
            }
        }
        public async Task <ResultObject> UpdateProductionType(M_ProductionType prodType)
        {
            var resultObj = new ResultObject {
                RowAffected = -1, ObjectValue = prodType
            };

            using (var context = new MasterDbContext(contextOptions))
            {
                using (var transaction = context.Database.BeginTransaction())
                {
                    try
                    {
                        context.Entry(prodType).State = EntityState.Modified;

                        MySqlParameter[] sqlParams = new MySqlParameter[] {
                            new MySqlParameter("strId", prodType.Id),
                            new MySqlParameter("strProdTypeCode", prodType.ProdTypeCode),
                            new MySqlParameter("strProdTypeName", prodType.ProdTypeName),
                            new MySqlParameter("strProdTypeDesc", prodType.ProdTypeDesc),
                            new MySqlParameter("strProdTypeSeq", prodType.ProdTypeSeq),
                            new MySqlParameter("strCompanyCode", prodType.CompanyCode),
                            new MySqlParameter("strIs_Active", prodType.Is_Active),
                            new MySqlParameter("strCreated_By", prodType.Updated_By)
                        };


                        //Output Parameter no need to define. @`strId`
                        resultObj.RowAffected = await context.Database.ExecuteSqlCommandAsync("call sp_productiontype_update(?, ?, ?, ?, ?, ?, ?, ?)", parameters : sqlParams);

                        transaction.Commit();

                        return(resultObj);
                    }
                    catch (Exception ex)
                    {
                        transaction.Rollback();
                        throw ex;
                    }
                }
            }
        }
        public async Task <ResultObject> InsertProductionType(M_ProductionType prodType)
        {
            var resultObj = new ResultObject {
                RowAffected = -1, ObjectValue = prodType
            };

            using (var context = new MasterDbContext(contextOptions))
            {
                using (var transaction = context.Database.BeginTransaction())
                {
                    try
                    {
                        MySqlParameter[] sqlParams = new MySqlParameter[] {
                            new MySqlParameter("strProdTypeCode", prodType.ProdTypeCode),
                            new MySqlParameter("strProdTypeName", prodType.ProdTypeName),
                            new MySqlParameter("strProdTypeDesc", prodType.ProdTypeDesc),
                            new MySqlParameter("strProdTypeSeq", prodType.ProdTypeSeq),
                            new MySqlParameter("strCompanyCode", prodType.CompanyCode),
                            new MySqlParameter("strIs_Active", prodType.Is_Active),
                            new MySqlParameter("strCreated_By", prodType.Created_By)
                        };

                        resultObj.RowAffected = await context.Database.ExecuteSqlCommandAsync("call sp_productiontype_insert(@`strId`, ?, ?, ?, ?, ?, ?, ?)", parameters : sqlParams);

                        //new department after insert.
                        var newProdType = context.ProductionType.FromSql("SELECT * FROM m_productiontype WHERE Id = @`strId`;").ToListAsync();
                        resultObj.ObjectValue = newProdType.Result[0];

                        transaction.Commit();

                        return(resultObj);
                    }
                    catch (Exception ex)
                    {
                        transaction.Rollback();
                        throw ex;
                    }
                }
            }
        }