Ejemplo n.º 1
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                List <ProcessCategoryHelper> tobeEditedPC = new List <ProcessCategoryHelper>();

                if (Page.RouteData.Values["Id"].ToSafeInt() != 0)
                {
                    drpCat.Enabled = false;
                    var repo = new ProcessCategoryRepository();
                    tobeEditedPC = repo.GetByCatIdWithDetails(Page.RouteData.Values["Id"].ToSafeInt());
                    var details = new List <ProcessCategoryHelper>();

                    foreach (ProcessCategoryHelper pc in tobeEditedPC)
                    {
                        if (pc.ProcessId != 999 && pc.ProcessId != 1000 && pc.ProcessId != 1001 && pc.ProcessId != 1002)
                        {
                            details.Add(new ProcessCategoryHelper()
                            {
                                Id           = pc.Id,
                                CategoryId   = pc.CategoryId,
                                CategoryName = pc.CategoryName,
                                ProcessId    = pc.ProcessId,
                                ProcessName  = pc.ProcessName,
                                Order        = pc.Order,
                                ProcessTime  = pc.ProcessTime
                            });
                        }
                    }

                    Session["GridSource"] = details;
                }
                else
                {
                    Session["GridSource"] = new List <ProcessCategoryHelper>();
                }

                BindDrpCat();

                if (Page.RouteData.Values["Id"].ToSafeInt() != 0)
                {
                    drpCat.SelectedValue = tobeEditedPC.FirstOrDefault().CategoryId.ToString();
                }

                BindDrpProcess();
            }

            if (Session["GridSource"] == null)
            {
                Session["GridSource"] = new List <ProcessCategoryHelper>();
            }

            gridInput.DataSource = Session["GridSource"];
            gridInput.DataBind();
        }
Ejemplo n.º 2
0
        protected void btnSave_Click(object sender, EventArgs e)
        {
            try
            {
                var catId         = drpCat.SelectedValue.ToSafeInt();
                var existingCatPr = new ProcessCategoryRepository().Get(a => a.CategoryId == catId).FirstOrDefault();
                if (Page.RouteData.Values["Id"].ToSafeInt() == 0 && existingCatPr != null)
                {
                    throw new LocalException("duplicate cat", " فرآیندهای این گروه محصول قبلا ثبت شده اند");
                }

                var gridSource = (List <ProcessCategoryHelper>)Session["GridSource"];
                var dupOrder   = gridSource.GroupBy(a => a.Order).Where(a => a.Count() > 1).Count();

                if (dupOrder > 0)
                {
                    throw new LocalException("duplicate order", "ترتیب تکراری در سطرهای ثبت شده");
                }

                //foreach(var item in gridSource)
                //{

                //}

                UnitOfWork uow = new UnitOfWork();

                if (Page.RouteData.Values["Id"].ToSafeInt() == 0)
                {
                    foreach (var item in ((List <ProcessCategoryHelper>)Session["GridSource"]))
                    {
                        var newPC = new Repository.Entity.Domain.ProcessCategory()
                        {
                            CategoryId  = item.CategoryId,
                            ProcessId   = item.ProcessId,
                            Order       = item.Order,
                            ProcessTime = item.ProcessTime
                        };

                        uow.ProcessCategories.Create(newPC);
                    }

                    if (!((List <ProcessCategoryHelper>)Session["GridSource"]).Any(a => a.ProcessId == 999)) //اتمام موقت
                    {
                        var newPC = new Repository.Entity.Domain.ProcessCategory()
                        {
                            CategoryId  = drpCat.SelectedValue.ToSafeInt(),
                            ProcessId   = 999,
                            Order       = 999,
                            ProcessTime = 0
                        };

                        uow.ProcessCategories.Create(newPC);
                    }

                    if (!((List <ProcessCategoryHelper>)Session["GridSource"]).Any(a => a.ProcessId == 1000)) //rework
                    {
                        var newPC = new Repository.Entity.Domain.ProcessCategory()
                        {
                            CategoryId  = drpCat.SelectedValue.ToSafeInt(),
                            ProcessId   = 1000,
                            Order       = 1000,
                            ProcessTime = 0
                        };

                        uow.ProcessCategories.Create(newPC);
                    }

                    if (!((List <ProcessCategoryHelper>)Session["GridSource"]).Any(a => a.ProcessId == 1001)) //esghat
                    {
                        var newPC = new Repository.Entity.Domain.ProcessCategory()
                        {
                            CategoryId  = drpCat.SelectedValue.ToSafeInt(),
                            ProcessId   = 1001,
                            Order       = 1001,
                            ProcessTime = 0
                        };

                        uow.ProcessCategories.Create(newPC);
                    }

                    if (!((List <ProcessCategoryHelper>)Session["GridSource"]).Any(a => a.ProcessId == 1002)) //nahar
                    {
                        var newPC = new Repository.Entity.Domain.ProcessCategory()
                        {
                            CategoryId  = drpCat.SelectedValue.ToSafeInt(),
                            ProcessId   = 1002,
                            Order       = 1002,
                            ProcessTime = 60
                        };

                        uow.ProcessCategories.Create(newPC);
                    }
                }
                else
                {
                    var repo       = uow.ProcessCategories;
                    var exsitedPCs = repo.Get(a => a.CategoryId == catId && a.ProcessId != 999 && a.ProcessId != 1000 && a.ProcessId != 1001 && a.ProcessId != 1002).ToList();

                    foreach (Repository.Entity.Domain.ProcessCategory item in exsitedPCs)
                    {
                        repo.Delete(item.Id);
                    }

                    var res = uow.SaveChanges();
                    if (!res.IsSuccess)
                    {
                        ((Main)Page.Master).SetGeneralMessage(res.ResultMessage, MessageType.Error);
                        return;
                    }

                    foreach (var item in ((List <ProcessCategoryHelper>)Session["GridSource"]))
                    {
                        var newPC = new Repository.Entity.Domain.ProcessCategory()
                        {
                            CategoryId  = item.CategoryId,
                            ProcessId   = item.ProcessId,
                            Order       = item.Order,
                            ProcessTime = item.ProcessTime
                        };

                        uow.ProcessCategories.Create(newPC);
                    }
                }

                var result = uow.SaveChanges();
                if (result.IsSuccess)
                {
                    ((Main)Page.Master).SetGeneralMessage("اطلاعات با موفقیت ذخیره شد", MessageType.Success);
                }
                else
                {
                    ((Main)Page.Master).SetGeneralMessage(result.ResultMessage, MessageType.Error);
                }

                ClearControls();
            }
            catch (LocalException ex)
            {
                ((Main)Page.Master).SetGeneralMessage("خطا در دخیره سازی -" + ex.ResultMessage, MessageType.Error);
            }
        }