Esempio n. 1
0
        public void AbandonExperience(ExperienceVM requestVM, Action <int?> callback)
        {
            string relativeUrl = "/InventoryService/ExperienceHall/AbandonExperience";

            SetRequestUserInfo(requestVM, InventoryAdjustSourceAction.Abandon);
            UpdateRequestStatus(relativeUrl, requestVM, callback);
        }
Esempio n. 2
0
        public IActionResult ModifierExperience(ExperienceVM experience)
        {
            using (var context = new Context())
            {
                var experienceModel = context.Experiences.FirstOrDefault(e => e.Id == experience.Id);
                experienceModel.Description = experience.Description;
                experienceModel.Poste       = experience.Poste;
                experienceModel.DateDebut   = experience.DateDebut;
                experienceModel.DateFin     = experience.DateFin;
                experienceModel.Entreprise  = experience.Entreprise;

                context.SaveChanges();

                var CV = context.CVs.Select(cv => new CVVM
                {
                    Id              = cv.Id,
                    CodePostal      = cv.CodePostal,
                    Commune         = cv.Commune,
                    DateDeNaissance = cv.DateDeNaissance,
                    Nom             = cv.Nom,
                    NumeroDeRue     = cv.NumeroDeRue,
                    Permis          = cv.Permis,
                    Prenom          = cv.Prenom,
                    Rue             = cv.Rue,
                    Titre           = cv.Titre,
                    Competences     = cv.Competences.Select(comp => new CompetenceVM
                    {
                        Id    = comp.Id,
                        Label = comp.Label
                    }),
                    Experiences = cv.Experiences.Select(exp => new ExperienceVM
                    {
                        Id          = exp.Id,
                        DateDebut   = exp.DateDebut,
                        DateFin     = exp.DateFin,
                        Description = exp.Description,
                        Entreprise  = exp.Entreprise,
                        Poste       = exp.Poste
                    }),
                    Formations = cv.Formations.Select(form => new FormationVM
                    {
                        Id          = form.Id,
                        DateDebut   = form.DateDebut,
                        DateFin     = form.DateFin,
                        Description = form.Description,
                        Diplome     = form.Diplome,
                        Ecole       = form.Ecole,
                        Intitule    = form.Intitule
                    }),
                    Langues = cv.Langues.Select(lang => new LangueVM
                    {
                        Id     = lang.Id,
                        Label  = lang.Label,
                        Niveau = lang.Niveau
                    })
                }).FirstOrDefault(cv => cv.Id == 1005);

                return(View("Index_bootstrap", CV));
            }
        }
Esempio n. 3
0
        public void ManualAdjustUserExperience(ExperienceVM vm, EventHandler <RestClientEventArgs <CustomerExperienceLog> > callback)
        {
            string relativeUrl        = "/CustomerService/Customer/ManualAdjustUserExperience";
            CustomerExperienceLog msg = vm.ConvertVM <ExperienceVM, CustomerExperienceLog>();

            restClient.Update(relativeUrl, msg, callback);
        }
Esempio n. 4
0
        public void ExperienceInOrOut(ExperienceVM requestVM, Action <int?> callback)
        {
            string relativeUrl = "/InventoryService/ExperienceHall/ExperienceInOrOut";

            SetRequestUserInfo(requestVM, InventoryAdjustSourceAction.Audit);
            UpdateRequestStatus(relativeUrl, requestVM, callback);
        }
Esempio n. 5
0
        public ActionResult Create(ExperienceVM model)
        {
            try
            {
                //check quality of data
                if (!ModelState.IsValid)
                {
                    return(View(model));
                }

                var experience = _mapper.Map <Experience>(model);

                if (!_repo.Create(experience))
                {
                    ModelState.AddModelError("", "something went wrong");
                    return(View(model));
                }

                return(RedirectToAction(nameof(Index)));
            }
            catch
            {
                ModelState.AddModelError("", "something went wrong");
                return(View());
            }
        }
Esempio n. 6
0
 public async Task<IActionResult> UpdateExperience(ExperienceVM vm)
 {
     var user = await _userManager.GetCurrentUser(HttpContext);
     if (vm.UserExperienceId > 0)
     {
         UserExperience exp= _context.UserExperience.SingleOrDefault(x => x.UserExperienceId == vm.UserExperienceId);
         exp.Title = vm.Title;
         exp.CompanyName = vm.CompanyName;
         exp.CityID = vm.CityId;
         exp.CurrentWorkCheck = vm.CurrentWorkCheck;
         exp.Description = vm.Description;
         exp.StartDate = vm.StartDate;
         exp.EndDate = vm.EndDate;
     }
     else
     {
         UserExperience exp = new UserExperience();
         exp.Title = vm.Title;
         exp.CompanyName = vm.CompanyName;
         exp.CityID = vm.CityId;
         exp.CurrentWorkCheck = vm.CurrentWorkCheck;
         exp.Description = vm.Description;
         exp.StartDate = vm.StartDate;
         exp.EndDate = vm.EndDate;
         exp.UserId = user.Id;
         _context.UserExperience.Add(exp);
     }
     _context.SaveChanges();
     return RedirectToAction("Index");
     //return View("Index");
 }
Esempio n. 7
0
        public ActionResult Edit(ExperienceVM model)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(View(model));
                }
                var experience = _mapper.Map <Experience>(model);
                var updated    = _repo.Update(experience);

                if (!updated)
                {
                    ModelState.AddModelError("", "Something went wrong");
                    return(View());
                }

                return(RedirectToAction(nameof(Index)));
            }
            catch
            {
                ModelState.AddModelError("", "Something went wrong");
                return(View());
            }
        }
Esempio n. 8
0
        public override void OnPageLoad(object sender, EventArgs e)
        {
            MaintainFacade = new ExperienceMaintainFacade(this);
            base.OnPageLoad(sender, e);
            if (SysNo.HasValue)
            {
                MaintainFacade.GetLendRequestInfoBySysNo(SysNo.Value, (vm) =>
                {
                    if (vm == null)
                    {
                        vm = null;
                        Window.Alert("单据不存在,此单据可能已经被删除或请传入其它的单据编号重试。");
                    }
                    ExperienceVM = vm;
                    SetDataContext();
                });
            }
            else
            {
                ExperienceVM = new ExperienceVM();

                experienceVM.ExperienceItemInfoList = new List <ExperienceItemVM>();

                tbstatus.Visibility     = System.Windows.Visibility.Collapsed;
                tbStatusText.Visibility = System.Windows.Visibility.Collapsed;
                SetDataContext();
            }
        }
Esempio n. 9
0
        public IHttpActionResult AddExperience(ExperienceVM model)
        {
            var response           = new ApiResult <ExperienceVM>();
            var currentApplicantId = (Membership.GetUser(User.Identity.Name) as CustomMembershipUser).ApplicantId;

            if (currentApplicantId == null)
            {
                return(Unauthorized());
            }

            if (!ModelState.IsValid)
            {
                return(BadRequest("Incorrect data posted, please check form and try again"));
            }

            if (model.Id > 0)
            {
                var experience = db.Experiences.Where(x => x.Id == model.Id).FirstOrDefault();
                if (experience == null)
                {
                    return(NotFound());
                }
                else
                {
                    experience.Title       = model.Title;
                    experience.CompanyName = model.Company;
                    experience.FromDate    = model.FromDate;
                    experience.ToDate      = model.ToDate;
                    //education.Qualification = model.Qualification;
                    db.SaveChanges();
                }
                response.Message = "Updated successfully";
            }
            else
            {
                var experience = new Experience
                {
                    ApplicantId = (int)currentApplicantId,
                    Title       = model.Title,
                    CompanyName = model.Company,
                    FromDate    = model.FromDate,
                    ToDate      = model.ToDate,
                    //Qualification = model.Qualification
                };

                db.Experiences.Add(experience);
                db.SaveChanges();
                model.Id = experience.Id;

                response.Message = "Added successfully";
            }


            response.Data     = model;
            response.HasError = false;
            return(Ok(response));
        }
Esempio n. 10
0
        private void hlbtnDelete_Click(object sender, RoutedEventArgs e)
        {
            HyperlinkButton  btn       = sender as HyperlinkButton;
            ExperienceItemVM vm        = btn.DataContext as ExperienceItemVM;
            ExperienceVM     RequestVM = this.DataContext as ExperienceVM;

            RequestVM.ExperienceItemInfoList.Remove(vm);
            this.dgProductList.ItemsSource = RequestVM.ExperienceItemInfoList;
        }
Esempio n. 11
0
        private void Experience(ExperienceVM vm)
        {
            NewLine();

            _fontStyle = FontFactory.GetFont("Calibri", 11f, 1);
            _fontStyle.SetColor(33, 97, 140);
            _pdfPCell                     = new PdfPCell(new Phrase("Experience", _fontStyle));
            _pdfPCell.Colspan             = _totalColumn;
            _pdfPCell.HorizontalAlignment = Element.ALIGN_LEFT;
            _pdfPCell.Border              = 0;
            _pdfPCell.BackgroundColor     = BaseColor.WHITE;
            _pdfPCell.ExtraParagraphSpace = 0;
            _pdfPTable.AddCell(_pdfPCell);
            _pdfPTable.CompleteRow();


            _fontStyle = FontFactory.GetFont("Calibri", 10f, 1);
            _fontStyle.SetColor(25, 111, 61);
            _pdfPCell                     = new PdfPCell(new Phrase(vm.Title, _fontStyle));
            _pdfPCell.Colspan             = 4;
            _pdfPCell.HorizontalAlignment = Element.ALIGN_LEFT;
            _pdfPCell.Border              = 0;
            _pdfPCell.BackgroundColor     = BaseColor.WHITE;
            _pdfPCell.ExtraParagraphSpace = 0;
            _pdfPTable.AddCell(_pdfPCell);

            _fontStyle = FontFactory.GetFont("Calibri", 10f, 0);
            if (vm.CurrentWorkCheck)
            {
                _pdfPCell = new PdfPCell(new Phrase(vm.StartDate.ToString("dd MMM yyyy") + " - Current", _fontStyle));
            }
            else
            {
                _pdfPCell = new PdfPCell(new Phrase(vm.StartDate.ToString("dd MMM yyyy") + " - " + vm.EndDate.ToString("dd MMM yyyy"), _fontStyle));
            }

            _pdfPCell.Colspan             = 2;
            _pdfPCell.HorizontalAlignment = Element.ALIGN_RIGHT;
            _pdfPCell.Border              = 0;
            _pdfPCell.BackgroundColor     = BaseColor.WHITE;
            _pdfPCell.ExtraParagraphSpace = 0;
            _pdfPTable.AddCell(_pdfPCell);

            _pdfPTable.CompleteRow();

            _fontStyle                    = FontFactory.GetFont("Calibri", 10f, 0);
            _pdfPCell                     = new PdfPCell(new Phrase(vm.Description, _fontStyle));
            _pdfPCell.Colspan             = _totalColumn;
            _pdfPCell.HorizontalAlignment = Element.ALIGN_LEFT;
            _pdfPCell.Border              = 0;
            _pdfPCell.BackgroundColor     = BaseColor.WHITE;
            _pdfPCell.ExtraParagraphSpace = 0;
            _pdfPTable.AddCell(_pdfPCell);

            _pdfPTable.CompleteRow();
            NewLine();
        }
Esempio n. 12
0
        public ActionResult AddOrEditExperience(ExperienceVM experience)
        {
            int userId = int.Parse(HttpContext.User.Identity.Name);


            if (ModelState.IsValid) //Despite its name, it doesn't actually know anything about any model classes.
                                    //The ModelState represents a Enumerable of name and value pairs that were submitted to the server during a POST.
                                    //It also contains a Enumerable of error messages for each value submitted
            {
                if (experience.FormAction == "AjoutTraitement")
                {
                    Experience exp = new Experience();

                    exp.DatedeDebut = experience.DateDebut;
                    exp.DatedeFin   = experience.DateFin;
                    exp.Poste       = experience.Poste;
                    exp.Entreprise  = experience.Entreprise;
                    exp.Description = experience.Description;
                    exp.PersonneId  = userId;

                    using (Context context = new Context())
                    {
                        context.Experiences.Add(exp);
                        context.SaveChanges();
                    }
                }
                else if (experience.FormAction == "EditionTraitement")
                {
                    using (Context context = new Context())
                    {
                        var result = (from e in context.Experiences
                                      where e.Id == experience.Id && e.PersonneId == userId
                                      select e).SingleOrDefault();

                        if (result != null)
                        {
                            result.DatedeDebut = experience.DateDebut;
                            result.DatedeFin   = experience.DateFin;
                            result.Poste       = experience.Poste;
                            result.Entreprise  = experience.Entreprise;
                            result.Description = experience.Description;

                            context.SaveChanges();
                        }
                    }
                }
            }

            return(RedirectToAction("Experiences"));
        }
Esempio n. 13
0
        public ActionResult AddExperience(ExperienceVM e, int id)
        {
            Candidate  c  = candidateService.GetById(id);
            Experience e1 = new Experience();

            e1.Designation = e.Designation;
            e1.Description = e.Description;
            e1.StartDate   = e.StartDate;
            e1.EndDate     = e.EndDate;
            e1.CandidateId = c.CandidateId;
            c.Experiences.Add(e1);
            candidateService.Update(c);
            candidateService.Commit();
            return(RedirectToAction("Details", new { id }));
        }
Esempio n. 14
0
        public IActionResult ModifierExperienceAjax(ExperienceVM experience)
        {
            using (var context = new Context())
            {
                var experienceModel = context.Experiences.FirstOrDefault(e => e.Id == experience.Id);
                experienceModel.Description = experience.Description;
                experienceModel.Poste       = experience.Poste;
                experienceModel.DateDebut   = experience.DateDebut;
                experienceModel.DateFin     = experience.DateFin;
                experienceModel.Entreprise  = experience.Entreprise;

                context.SaveChanges();

                return(Json(null));
            }
        }
Esempio n. 15
0
        private void SetRequestUserInfo(ExperienceVM requestVM, InventoryAdjustSourceAction action)
        {
            int?currentUserSysNo = CPApplication.Current.LoginUser.UserSysNo;

            if (action == InventoryAdjustSourceAction.Create)
            {
                requestVM.InUser = currentUserSysNo;
            }
            else if (action == InventoryAdjustSourceAction.Audit || action == InventoryAdjustSourceAction.CancelAudit)
            {
                requestVM.AuditUser = currentUserSysNo;
            }
            else
            {
                requestVM.EditUser = currentUserSysNo;
            }
        }
Esempio n. 16
0
        //User Experience

        public IActionResult AddEditUserExperience(int Id)
        {
            ViewBag.CountryList = new SelectList(GetCountryList(), "CountryId", "CountryName");
            ExperienceVM vm = new ExperienceVM();
            if (Id > 0)
            {
                UserExperience exp = _context.UserExperience.SingleOrDefault(x => x.UserExperienceId == Id);
                vm.Title = exp.Title;
                vm.CompanyName = exp.CompanyName;
                vm.CityId = exp.CityID;
                vm.CurrentWorkCheck = exp.CurrentWorkCheck;
                vm.Description = exp.Description;
                vm.StartDate = exp.StartDate;
                vm.EndDate = exp.EndDate;
                vm.UserExperienceId = Id;
            }
            return PartialView(vm);
        }
Esempio n. 17
0
        public void GetLendRequestInfoBySysNo(int sysNo, Action <ExperienceVM> callback)
        {
            string relativeUrl = string.Format("/InventoryService/ExperienceHall/Load/{0}", sysNo);

            restClient.Query <ExperienceInfo>(relativeUrl, (obj, args) =>
            {
                if (!args.FaultsHandle())
                {
                    ExperienceVM vm = null;
                    if (args.Result != null)
                    {
                        vm = ConvertRequestInfoToVM(args.Result);
                    }
                    if (callback != null)
                    {
                        callback(vm);
                    }
                }
            });
        }
Esempio n. 18
0
        private void UpdateRequestStatus(string relativeUrl, ExperienceVM requestVM, Action <int?> callback)
        {
            ExperienceInfo msg = ConvertRequestVMToInfo(requestVM);

            restClient.Update <int?>(relativeUrl, msg, (obj, args) =>
            {
                if (!args.FaultsHandle())
                {
                    //ExperienceVM vm = null;
                    if (args.Result != null)
                    {
                        //vm = ConvertRequestInfoToVM(args.Result);
                    }
                    if (callback != null)
                    {
                        callback(args.Result);
                    }
                }
            });
        }
Esempio n. 19
0
        private ExperienceVM ConvertRequestInfoToVM(ExperienceInfo info)
        {
            ExperienceVM vm = info.Convert <ExperienceInfo, ExperienceVM>((i, v) =>
            {
            });

            //ExperienceVM vm = new ExperienceVM()
            //{
            //    AllocateType = info.AllocateType,
            //    AuditDate = info.AuditDate,
            //    AuditUser = info.AuditUser,
            //    EditDate = info.EditDate,
            //    EditUser = info.EditUser,
            //    InDate = info.InDate,
            //    InUser = info.InUser,
            //    Meno = info.Meno,
            //    Status = info.Status,
            //    StockSysNo = info.StockSysNo,
            //    SysNo = info.SysNo
            //};

            //if (info.ExperienceItemInfoList != null)
            //{
            //    info.ExperienceItemInfoList.ForEach(p =>
            //    {
            //        ExperienceItemVM item = new ExperienceItemVM()
            //        {
            //            AllocateQty = p.AllocateQty,
            //            AllocateSysNo = p.AllocateSysNo,
            //            ProductID = p.ProductID,
            //            ProductName = p.ProductName,
            //            ProductSysNo = p.ProductSysNo,
            //            SysNo = p.SysNo
            //        };

            //        vm.ExperienceItemInfoList.Add(item);
            //    });
            //}
            return(vm);
        }
Esempio n. 20
0
        public void UpdateRequest(ExperienceVM requestVM, Action <int?> callback)
        {
            string relativeUrl = "/InventoryService/ExperienceHall/UpdateExperience";

            SetRequestUserInfo(requestVM, InventoryAdjustSourceAction.Update);
            ExperienceInfo msg = ConvertRequestVMToInfo(requestVM);

            restClient.Update <int?>(relativeUrl, msg, (obj, args) =>
            {
                if (!args.FaultsHandle())
                {
                    //ExperienceVM vm = null;
                    if (args.Result != null)
                    {
                        //vm = ConvertRequestInfoToVM(args.Result);
                    }
                    if (callback != null)
                    {
                        callback(args.Result);
                    }
                }
            });
        }
Esempio n. 21
0
        public IHttpActionResult GetExperience(int Id)
        {
            var experience = db.Experiences.Where(x => x.Id == Id).FirstOrDefault();
            var result     = new ApiResult <ExperienceVM>();

            if (experience != null)
            {
                var experienceModel = new ExperienceVM
                {
                    Title   = experience.Title,
                    Company = experience.CompanyName,
                    Id      = experience.Id
                };

                result.HasError = false;
                result.Message  = "Successusfully entered Experience";
                result.Data     = experienceModel;
            }
            else
            {
                return(BadRequest("Experience records not found"));
            }
            return(Json(result));
        }
Esempio n. 22
0
        private ExperienceInfo ConvertRequestVMToInfo(ExperienceVM vm)
        {
            ExperienceInfo info = vm.ConvertVM <ExperienceVM, ExperienceInfo>((v, i) =>
            {
            });

            info.ExperienceItemInfoList = new List <ExperienceItemInfo>();

            vm.ExperienceItemInfoList.ForEach(item =>
            {
                //info.ExperienceItemInfoList.Add(new ExperienceItemInfo()
                //{
                //    AllocateQty = item.AllocateQty,
                //    ProductID = item.ProductID,
                //    ProductName = item.ProductName,
                //    ProductSysNo = item.ProductSysNo
                //});

                ExperienceItemInfo itemInfo = item.ConvertVM <ExperienceItemVM, ExperienceItemInfo>();
                info.ExperienceItemInfoList.Add(itemInfo);
            });

            return(info);
        }
Esempio n. 23
0
 private void btnAdjustTotalSOMoney_Click(object sender, RoutedEventArgs e)
 {
     if (!AuthMgr.HasFunctionPoint(AuthKeyConst.Customer_Experience_ManualAdd))
     {
         CPApplication.Current.CurrentPage.Context.Window.Alert(ResExperienceValueInfo.rightMsg_NoRight_ManualAdd);
         return;
     }
     if (ValidationManager.Validate(this.LayoutRoot))
     {
         ExperienceVM vm = this.DataContext as ExperienceVM;
         vm.Type = ExperienceLogType.ManualSetTotalSOMoney;
         int?amount = 0;
         try
         {
             amount    = int.Parse(vm.Amount);
             vm.Amount = amount.ToString();
         }
         catch
         {
             CPApplication.Current.CurrentPage.Context.Window.Alert(ResCustomerMaintain.Info_ExperienceFailed);
             return;
         }
         new CustomerFacade().ManualAdjustUserExperience(vm, (obj, args) =>
         {
             if (args.FaultsHandle())
             {
                 return;
             }
             vm.TotalSOMoney = vm.TotalSOMoney + int.Parse(vm.Amount);
             vm.Memo         = string.Empty;
             vm.ValidationErrors.Clear();
             CPApplication.Current.CurrentPage.Context.Window.Alert(ResCustomerMaintain.Info_AdjustSuccessfully);
             CPApplication.Current.CurrentPage.Context.Window.Refresh();
         });
     }
 }
Esempio n. 24
0
        public async Task <IActionResult> Experience(int?id)
        {
            var currentUser = await _userManager.GetUserAsync(User);

            Profile currentProfile = null;
            int     currentId      = 0;
            int     profileId      = 0;

            if (_signInManager.IsSignedIn(User))
            {
                currentProfile = db.Profile.FirstOrDefault(p => p.UsersId == currentUser.Id);
                currentId      = currentProfile.id;
            }

            if (id == null)
            {
                if (_signInManager.IsSignedIn(User))
                {
                    profileId = currentId;
                }
                else
                {
                    return(RedirectToAction("Index", "Home"));
                }
            }
            else
            {
                profileId = (int)id;
            }

            var profile = db.Profile.FirstOrDefault(p => p.id == profileId);
            var user    = db.Users.FirstOrDefault(u => u.Id == profile.UsersId);

            // if blocked
            if (_signInManager.IsSignedIn(User))
            {
                var block = db.Blocklist.FirstOrDefault(b => b.blockedId == user.Id && b.blockerId == currentUser.Id || b.blockerId == user.Id && b.blockedId == currentUser.Id);

                if (block != null)
                {
                    return(RedirectToAction("Index", "Home"));
                }
            }

            //if banned

            if (profile.Disabled && profile.UsersId != currentUser.Id)
            {
                return(RedirectToAction("Index", "Home"));
            }
            else if (currentProfile != null && currentProfile.Disabled)
            {
                return(RedirectToAction("Ban", "Home", new { profile.id }));
            }

            var experiences = db.Experience.Where(exp => exp.ProfileId == profile.id).ToList();

            experiences.Reverse();
            // Get profile Cover information
            bool isfolowing = false;

            if (currentUser != null)
            {
                var folow = db.Follow.FirstOrDefault(f => f.folowerId == currentProfile.id && f.folowingId == profile.id);
                if (folow != null)
                {
                    isfolowing = true;
                }
            }

            var coverClass = new CoverClass()
            {
                Profile    = profile,
                User       = db.Users.FirstOrDefault(u => u.Id == profile.UsersId),
                folowings  = db.Follow.Where(f => f.folowerId == profile.id).Count(),
                folowers   = db.Follow.Where(f => f.folowingId == profile.id).Count(),
                views      = profile.View,
                isFolowing = isfolowing
            };

            // preparing experience model
            var model = new ExperienceVM()
            {
                Experiences = experiences,
                Cover       = coverClass,
                Profile     = profile,
                Companies   = db.Company.ToList()
            };

            bool isAjaxCall = Request.Headers["x-requested-with"] == "XMLHttpRequest";

            if (isAjaxCall)
            {
                return(PartialView("_Experience", model));
            }

            else
            {
                return(View(model));
            }
        }
Esempio n. 25
0
 public AddExperienceCommand(ExperienceVM experienceModel)
 {
     this.experienceModel = experienceModel;
 }
Esempio n. 26
0
        private void ShowEditModeDialog(object sender, RoutedEventArgs e, string title, bool isNotReturn)
        {
            HyperlinkButton         btn        = sender as HyperlinkButton;
            List <ExperienceItemVM> itemSource = this.dgProductList.ItemsSource as List <ExperienceItemVM>;
            ExperienceItemVM        selected   = this.dgProductList.SelectedItem as ExperienceItemVM;

            ExperienceVM     RequestVM = this.DataContext as ExperienceVM;
            ExperienceItemVM seleced   = RequestVM.ExperienceItemInfoList.Where(p => p.ProductSysNo == selected.ProductSysNo).FirstOrDefault();

            UCProductBatch batch = new UCProductBatch(seleced.ProductSysNo.Value.ToString(), seleced.ProductID, false, null);


            //batch.StockSysNo = RequestVM.StockSysNo;
            //if (seleced.ReturnDateETA.HasValue)
            //batch.ReturnDate = seleced.ReturnDateETA;
            //batch.OperationQuantity =  seleced.LendQuantity.HasValue ? seleced.LendQuantity.Value : 0;
            //batch.PType = Models.Request.PageType.Lend;
            //batch.IsCreateMode = false;
            //batch.IsNotLend_Return = isNotReturn;

            IDialog dialog = CurrentWindow.ShowDialog("添加明细", batch, (obj, args) =>
            {
                ProductVMAndBillInfo productList = args.Data as ProductVMAndBillInfo;
                if (productList != null)
                {
                    productList.ProductVM.ForEach(p =>
                    {
                        ExperienceItemVM vm = null;

                        #region 只允许添加自己权限范围内可以访问商品
                        string errorMessage = "对不起,您没有权限访问{0}商品!";
                        InventoryQueryFilter queryFilter = new InventoryQueryFilter();
                        queryFilter.ProductSysNo         = p.SysNo;
                        queryFilter.UserName             = Newegg.Oversea.Silverlight.ControlPanel.Core.CPApplication.Current.LoginUser.LoginName;
                        queryFilter.CompanyCode          = Newegg.Oversea.Silverlight.ControlPanel.Core.CPApplication.Current.CompanyCode;
                        queryFilter.UserSysNo            = Newegg.Oversea.Silverlight.ControlPanel.Core.CPApplication.Current.LoginUser.UserSysNo;

                        int?returnQuantity = null;
                        int quantity       = 1;
                        if (p.IsHasBatch == 1)
                        {
                            quantity = (from s in p.ProductBatchLst select s.Quantity).Sum();
                        }
                        else if (p.IsHasBatch == 0)
                        {
                            quantity = productList.Quantity;
                        }
                        if (!batch.IsNotLend_Return)
                        {
                            returnQuantity = (from s in p.ProductBatchLst select s.ReturnQuantity).Sum();
                        }


                        if (!AuthMgr.HasFunctionAbsolute(AuthKeyConst.IM_SeniorPM_Query))
                        {
                            new InventoryQueryFacade(CurrentPage).CheckOperateRightForCurrentUser(queryFilter, (Innerogj, innerArgs) =>
                            {
                                if (!innerArgs.FaultsHandle())
                                {
                                    if (!innerArgs.Result)
                                    {
                                        CurrentWindow.Alert(string.Format(errorMessage, p.ProductID));
                                        return;
                                    }
                                    else
                                    {
                                        vm = new ExperienceItemVM
                                        {
                                            //ProductSysNo = p.SysNo,
                                            //LendQuantity = quantity,
                                            //ProductName = p.ProductName,
                                            //ProductID = p.ProductID,
                                            //PMUserName = p.PMUserName,
                                            //ReturnDateETA = productList.ReturnDate,
                                            //BatchDetailsInfoList = EntityConverter<BatchInfoVM, ProductBatchInfoVM>.Convert(p.ProductBatchLst),
                                            //IsHasBatch = p.IsHasBatch
                                        };

                                        RequestVM.ExperienceItemInfoList.Remove((ExperienceItemVM)this.dgProductList.SelectedItem);
                                        RequestVM.ExperienceItemInfoList.Add(vm);
                                        this.dgProductList.ItemsSource = RequestVM.ExperienceItemInfoList;
                                    }
                                }
                            });
                        }
                        else
                        {
                            vm = new ExperienceItemVM
                            {
                                //ProductSysNo = p.SysNo,
                                //LendQuantity = quantity,
                                //ProductName = p.ProductName,
                                //ProductID = p.ProductID,
                                //PMUserName = p.PMUserName,
                                //ReturnDateETA = productList.ReturnDate,
                                //BatchDetailsInfoList = EntityConverter<BatchInfoVM, ProductBatchInfoVM>.Convert(p.ProductBatchLst),
                                //IsHasBatch = p.IsHasBatch
                            };

                            RequestVM.ExperienceItemInfoList.Remove((ExperienceItemVM)this.dgProductList.SelectedItem);
                            RequestVM.ExperienceItemInfoList.Add(vm);
                            this.dgProductList.ItemsSource = RequestVM.ExperienceItemInfoList;
                        }

                        #endregion
                    });
                }
            });

            batch.DialogHandler = dialog;
        }