示例#1
0
        public RequestEntity OpenRequestEditDialog(RequestEntity request, bool readOnly, bool isProcess, bool isCommit)
        {
            _logger.Debug("OpenRequestEditDialog.");
            _logger.Debug("Params: Request = {0}; ReadOnly = {1}; IsProcess = {2}; IsCommit = {3}", request.ToStateString(), Hlp.BoolToStr(readOnly), Hlp.BoolToStr(isProcess), Hlp.BoolToStr(isCommit));
            if (request == null || request.IsNewEntity)
            {
                _logger.Debug("Creating new request.");
            }
            else
            {
                _logger.Debug("Request = {0}; ", request.ToInternalString());
            }

            RequestEntity result = null;

            using (RequestEditViewModel viewModel = CreateRequestEditViewModel(request, readOnly, isProcess, isCommit))
            {
                if (_dialogMgr.ShowModal(viewModel) == DialogResult.OK && !readOnly)
                {
                    result = viewModel.Request;
                }
            }

            return(result);
        }
示例#2
0
        public ActionResult RequestEdit(int?requestId)
        {
            using (MainDBEntities mainDB = new MainDBEntities())
            {
                var requstResult = mainDB.RequestTables.FirstOrDefault(a => a.RequestID == requestId);
                var viewModel    = new RequestEditViewModel(requstResult);
                viewModel.GetCompany(mainDB.ClientTables.FirstOrDefault(x => x.ClientID == requstResult.ClientID));
                viewModel.GetType(mainDB.TypeTables.FirstOrDefault(x => x.TypeID == requstResult.TypeID));
                viewModel.GetStatus(mainDB.StatusTables.FirstOrDefault(x => x.StatusID == requstResult.StatusID));
                viewModel.GetUser(mainDB.UserAccounts.FirstOrDefault(x => x.UserID == requstResult.UserID));
                var statuses = mainDB.StatusTables.ToArray();
                viewModel.GetStatuses(statuses);
                var detailsList = requstResult.RequestDetails.Select(x => new DetailsViewModel
                {
                    StageNumber = x.StageNumber,
                    StageDate   = x.StageDate.Value.ToShortDateString(),
                    StageDesc   = x.StageDesc,
                    StageTime   = x.StageTime,
                    Status      = statuses.FirstOrDefault(y => y.StatusID == x.StatusID).StatusName,
                    UserName    = mainDB.UserAccounts.FirstOrDefault(y => x.UserID == requstResult.UserID).UserName
                }).ToArray();
                viewModel.Details = detailsList;

                return(View(viewModel));
            }
        }
示例#3
0
        public async Task <IActionResult> Edit(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            var request = await _context.Request.FindAsync(id);

            if (request == null)
            {
                return(NotFound());
            }

            RequestEditViewModel model = new RequestEditViewModel()
            {
                ID                = request.ID,
                Title             = request.Title,
                Description       = request.Description,
                CategoryID        = request.CategoryID,
                PersonID          = request.PersonID,
                ExistingImagePath = request.ImagePath
            };


            ViewData["CategoryID"] = new SelectList(_context.Category, "ID", "Name", model.CategoryID);
            ViewData["PersonID"]   = new SelectList(_context.Person, "ID", "FirstName", model.PersonID);
            return(View(model));
        }
示例#4
0
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Request request = db.Requests.Find(id);

            if (request == null)
            {
                return(HttpNotFound());
            }

            RequestEditViewModel reqEdit = new RequestEditViewModel();

            reqEdit.RequestID       = request.RequestID;
            reqEdit.PurchaseOrderID = request.PurchaseOrder.PurchaseOrderID;
            reqEdit.VIPID           = request.VIP.VIPID;
            reqEdit.LicenseTypeID   = request.LicenseType.LicenseTypeID;
            reqEdit.ProductID       = request.Product.ProductID;
            reqEdit.POCName         = request.PointOfContact.POCName;

            ViewBag.VIPList         = new SelectList(db.VIPs.OrderBy(x => x.VIPID), "VIPID", "VIPName");
            ViewBag.LicenseTypeList = new SelectList(db.LicenseTypes.OrderBy(x => x.LicenseTypeID), "LicenseTypeID", "LicenseTypeDesc");
            ViewBag.ProductList     = new SelectList(db.Products.OrderBy(x => x.ProductID), "ProductID", "ProductDesc");

            return(View(reqEdit));
        }
        // GET: Request/Edit/5
        public async Task <IActionResult> Edit(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }
            var Userid    = _userManager.GetUserAsync(User).Result.Id;
            var firstName = _userManager.GetUserAsync(User).Result.FirstName;
            var lastName  = _userManager.GetUserAsync(User).Result.LastName;
            var phone     = _userManager.GetUserAsync(User).Result.PhoneNumber;
            var FullName  = firstName + " " + lastName;
            var address   = _userManager.GetUserAsync(User).Result.Address;
            var request   = await _context.Request.FindAsync(id);

            var membership = _userManager.GetUserAsync(User).Result.Membership.ToString();

            if (request.ApplicationUserId == Userid)
            {
                if (request.RequestStatus == RequestStatus.pending)
                {
                    RequestEditViewModel requestEditViewModel = new RequestEditViewModel
                    {
                        Id                = request.RequestId,
                        NeededService     = request.NeededService,
                        ServiceType       = request.ServiceType,
                        Comment           = request.Comment,
                        ExistingPhotoPath = request.PhotoPath,
                        CustomerName      = request.CustomerName,
                        PhoneNumber       = request.PhoneNumber,
                        Address           = request.Address,
                        ScheduleTime      = request.ScheduleTime,
                        ApplicationUserId = Userid,
                        RefNo             = request.RefNo,
                        MembershipType    = request.MembershipType,
                        RequestStatus     = request.RequestStatus,
                        MyService         = request.MyService,
                        ExistingVideoPath = request.VideoPath,
                        PaymentStatus     = request.PaymentStatus
                    };



                    return(View(requestEditViewModel));
                }
                return(RedirectToAction(nameof(Completed)));
            }
            return(NotFound());



            if (request == null)
            {
                return(NotFound());
            }
            return(View());
        }
示例#6
0
        public void OnAfterCloseRequestViewModel(RequestEditViewModel viewModel)
        {
            RequestEditViewModel viewModelinList = null;

            if (_requestViewModelList.TryGetValue(viewModel.Ident, out viewModelinList))
            {
                _requestViewModelList.Remove(viewModel.Ident);
                viewModel.Dispose();
            }
        }
示例#7
0
        RequestEditViewModel SettingToRequestEditVM(EditViewModelSetting setting)
        {
            RequestEntitySetting requestSetting = new RequestEntitySetting();

            LoadSetting <RequestEntitySetting>(setting.RequestName, requestSetting);

            RequestEntity        request   = SettingToRequest(requestSetting);
            RequestEditViewModel viewModel = _mainController.CreateRequestEditViewModel(request, setting.ReadOnly, setting.IsProcess, setting.IsCommit);

            viewModel.DialogSetting = new Core.SDK.Composite.UI.DialogSetting(setting.Position, setting.Size);
            return(viewModel);
        }
        private RequestEditViewModel ParseRequestModelToEditViewModel(IEnumerable <RequestModel> requestModel)
        {
            RequestEditViewModel requestEditModel = new RequestEditViewModel
            {
                RequestNumber  = requestModel.First().RequestNumber,
                RequestAddress = requestModel.First().RequestAddress,
                RequestReason  = requestModel.First().RequestReason,
                RequestDate    = requestModel.First().RequestDate,
                Category       = requestModel.First().Category.Id
            };

            return(requestEditModel);
        }
示例#9
0
        public async Task <IActionResult> Edit(int id, [Bind("ID,Title,Description,CategoryID,PersonID,Image")] RequestEditViewModel model)
        {
            if (id != model.ID)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    var request = await _context.Request
                                  .Include(r => r.Category)
                                  .Include(r => r.Person)
                                  .FirstOrDefaultAsync(m => m.ID == id);

                    request.Title       = model.Title;
                    request.Description = model.Description;
                    request.CategoryID  = model.CategoryID;
                    request.PersonID    = model.PersonID;
                    if (model.Image != null)
                    {
                        if (model.ExistingImagePath != null)
                        {
                            string filePath = Path.Combine(_webHostEnvironment.WebRootPath,
                                                           "images", model.ExistingImagePath);
                            System.IO.File.Delete(filePath);
                        }
                        request.ImagePath = ProcessUploadedFile(model);
                    }

                    _context.Update(request);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!RequestExists(model.ID))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            ViewData["CategoryID"] = new SelectList(_context.Category, "ID", "Name", model.CategoryID);
            ViewData["PersonID"]   = new SelectList(_context.Person, "ID", "FirstName", model.PersonID);
            return(View(model));
        }
示例#10
0
        public ActionResult RequestEditPOST(RequestEditViewModel dupa)
        {
            ActionResult actionResult;
            var          tmp = dupa;

            if (ModelState.IsValid)
            {
                using (MainDBEntities mainDB = new MainDBEntities())
                {
                    var requstResult = mainDB.RequestTables.FirstOrDefault(a => a.RequestID == dupa.RequestID);

                    if (requstResult != null)
                    {
                        requstResult.Title       = dupa.Title;
                        requstResult.RequestDate = dupa.RequestDate;
                        requstResult.StatusID    = dupa.StatusId;
                        requstResult.Description = dupa.Description;
                        requstResult.RequestTime = dupa.RequestTime;
                        requstResult.Solution    = dupa.Solution;
                    }

                    mainDB.SaveChanges();
                }

                actionResult = RedirectToAction("Index");
            }
            else
            {
                using (MainDBEntities mainDB = new MainDBEntities())
                {
                    var statuses = mainDB.StatusTables.ToArray();
                    dupa.GetStatuses(statuses);
                    var requstResult = mainDB.RequestTables.FirstOrDefault(a => a.RequestID == dupa.RequestID);
                    var detailsList  = requstResult.RequestDetails.Select(x => new DetailsViewModel
                    {
                        StageNumber = x.StageNumber,
                        StageDate   = x.StageDate.Value.ToShortDateString(),
                        StageDesc   = x.StageDesc,
                        StageTime   = x.StageTime,
                        Status      = statuses.FirstOrDefault(y => y.StatusID == x.StatusID).StatusName,
                        UserName    = mainDB.UserAccounts.FirstOrDefault(y => x.UserID == requstResult.UserID).UserName
                    }).ToArray();
                    dupa.Details = detailsList;
                }

                actionResult = View("RequestEdit", dupa);
            }

            return(actionResult);
        }
        private RequestModel ParseEditViewModelToRequestModel(RequestEditViewModel requestEditModel)
        {
            RequestModel requestModel = new RequestModel
            {
                RequestNumber  = requestEditModel.RequestNumber,
                RequestAddress = requestEditModel.RequestAddress,
                RequestReason  = requestEditModel.RequestReason,
                RequestDate    = requestEditModel.RequestDate,
                Category       = new CategoryModel {
                    Id = requestEditModel.Category
                }
            };

            return(requestModel);
        }
示例#12
0
        EditViewModelSetting RequstEditVMToSetting(RequestEditViewModel viewModel)
        {
            EditViewModelSetting setting = new EditViewModelSetting();

            setting.Size        = viewModel.DialogSetting.Size;
            setting.Position    = viewModel.DialogSetting.Position;
            setting.IsCommit    = viewModel.IsCommit;
            setting.IsProcess   = viewModel.IsProcess;
            setting.ReadOnly    = viewModel.ReadOnly;
            setting.RequestName = viewModel.Request.InternalName;
            RequestEntitySetting reqSetting = RequestToSetting(viewModel.Request);

            SaveSetting(setting.RequestName, reqSetting);

            return(setting);
        }
示例#13
0
        public void OpenRequestEditForm(RequestEntity request, bool readOnly)
        {
            _logger.Debug("OpenRequestEditForm.");
            _logger.Debug("Params: Request = {0}; ReadOnly = {1}.", request.ToStateString(), Hlp.BoolToStr(readOnly));
            if (request == null || request.IsNewEntity)
            {
                _logger.Debug("Creating new request.");
            }
            else
            {
                _logger.Debug("Request = {0}; ", request.ToInternalString());
            }

            RequestEditViewModel viewModel = null;

            viewModel = new RequestEditViewModel(request, this, readOnly, true, true);
            _dialogMgr.ShowNoModal(viewModel);
            _requestViewModelList.Add(viewModel.Ident, viewModel);
        }
示例#14
0
        public ActionResult Edit(int ID)
        {
            try
            {
                var requestEditViewModel = new RequestEditViewModel();
                if (ID > 0)
                {
                    REF_REQUEST_TB request = _uow.Repository <REF_REQUEST_TB>().GetById(ID);
                    requestEditViewModel.RequestID             = request.N_REQUEST_SYSID;
                    requestEditViewModel.SelectedLocationGroup = request.N_LOCATION_GROUP_SYSID;
                    requestEditViewModel.SelectedRequestGroup  = request.N_REQUEST_GROUP_SYSID;
                    requestEditViewModel.SelectedTestGroup     = request.N_TEST_GROUP_SYSID;
                    requestEditViewModel.LocationGroups        = (List <SelectListItem>)_locationRepo.GetLocationGroupsSelectList();
                    requestEditViewModel.RequestGroups         = (List <SelectListItem>)_requestRepo.GetRequestGroups();
                    requestEditViewModel.TestGroups            = (List <SelectListItem>)_testRepo.GetTestGroupsSelectList();
                }
                else
                {
                    requestEditViewModel.RequestID             = ID;
                    requestEditViewModel.SelectedLocationGroup = 0;
                    requestEditViewModel.SelectedRequestGroup  = 0;
                    requestEditViewModel.SelectedTestGroup     = 0;
                    requestEditViewModel.LocationGroups        = (List <SelectListItem>)_locationRepo.GetLocationGroupsSelectList();
                    requestEditViewModel.RequestGroups         = (List <SelectListItem>)_requestRepo.GetRequestGroups();
                    requestEditViewModel.TestGroups            = (List <SelectListItem>)_testRepo.GetTestGroupsSelectList();
                }

                return(View("Edit", requestEditViewModel));
            }
            catch (Exception ex)
            {
                if (ex.InnerException == null)
                {
                    ViewBag.Message = "Function: RequestController.Edit_GET\n\nError: " + ex.Message;
                }
                else
                {
                    ViewBag.Message = "Function: RequestController.Edit_GET\n\nError: " + (ex.Message + "\n\nInnerException: " + ex.InnerException.Message);
                };
                Session["ErrorMessage"] = ViewBag.Message;
                return(RedirectToAction("InternalServerError", "Error"));
            };
        }
 public IActionResult EditRequest(int?Id)
 {
     if (Id == null)
     {
         return(RedirectToAction("Requests"));
     }
     else
     {
         RequestEditViewModel requestDetails = requestEditMapper.MapTo(requestsManagementService.GetById((int)Id));
         if (requestDetails != null)
         {
             requestDetails.AvailableSpecialists = specialistManagementService.GetAll().Select(s => specialistMapper.MapTo(s));
             return(View(requestDetails));
         }
         else
         {
             return(RedirectToAction("Requests"));
         }
     }
 }
示例#16
0
 public bool ProcessRequestViewModel(RequestEditViewModel viewModel)
 {
     try
     {
         if (!viewModel.ReadOnly && viewModel.IsProcess)
         {
             if (viewModel.RequestOrigin == null || viewModel.RequestOrigin.IsNewEntity)
             {
                 AddRequest(viewModel.Request, viewModel.IsCommit);
             }
             else
             {
                 UpdateRequest(viewModel.RequestOrigin, viewModel.Request, viewModel.IsCommit);
             }
         }
         return(true);
     }
     catch (Exception ex)
     {
         _logger.Error(ex);
         return(false);
     }
 }
 public IActionResult EditRequest(RequestEditViewModel requestDetails)
 {
     requestsManagementService.Update(requestEditMapper.MapFrom(requestDetails));
     return(RedirectToAction("Requests"));
 }
示例#18
0
        public async Task <IActionResult> Edit(int id, RequestEditViewModel model)
        {
            var firstName  = _userManager.GetUserAsync(User).Result.FirstName;
            var lastName   = _userManager.GetUserAsync(User).Result.LastName;
            var phone      = _userManager.GetUserAsync(User).Result.PhoneNumber;
            var FullName   = firstName + " " + lastName;
            var address    = _userManager.GetUserAsync(User).Result.Address;
            var Userid     = _userManager.GetUserAsync(User).Result.Id;
            var email      = _userManager.GetUserAsync(User).Result.Email;
            var membership = _userManager.GetUserAsync(User).Result.Membership;
            var admin      = "*****@*****.**";

            if (model.ScheduleTime > DateTime.Now)
            {
                if (ModelState.IsValid)
                {
                    var request = await _context.Request.FindAsync(id);

                    request.CustomerName      = FullName;
                    request.Address           = address;
                    request.PhoneNumber       = phone;
                    request.RequestId         = model.Id;
                    request.ServiceType       = model.ServiceType;
                    request.ScheduleTime      = model.ScheduleTime;
                    request.NeededService     = model.NeededService;
                    request.Comment           = model.Comment;
                    request.ApplicationUserId = Userid;
                    request.RefNo             = model.RefNo;
                    request.MembershipType    = membership;
                    request.RequestStatus     = model.RequestStatus;
                    request.MyService         = model.NeededService.ToString();
                    request.PaymentStatus     = model.PaymentStatus;
                    if (model.Photo != null)
                    {
                        if (model.ExistingPhotoPath != null)
                        {
                            string filePath = Path.Combine(hostingEnvironment.WebRootPath,
                                                           "images", model.ExistingPhotoPath);
                            System.IO.File.Delete(filePath);
                        }
                        request.PhotoPath = ProcessUploadedFile(model);
                    }

                    if (model.Video != null)
                    {
                        if (model.ExistingVideoPath != null)
                        {
                            string filePath = Path.Combine(hostingEnvironment.WebRootPath,
                                                           "videos", model.ExistingVideoPath);
                            System.IO.File.Delete(filePath);
                        }
                        request.VideoPath = VideoUploadedFile(model);
                    }

                    if (model.DeleteMedia == true)
                    {
                        request.VideoPath = null;
                        request.PhotoPath = null;
                    }

                    _context.Update(request);
                    await _context.SaveChangesAsync();


                    var myid        = request.RequestId;
                    var callbackUrl = Url.Action("Details", "UserRequest", new { id = request.RequestId },
                                                 protocol: HttpContext.Request.Scheme);
                    await _emailSend.SendEmailAsync(email, "Request Update",
                                                    $"Dear " + _userManager.GetUserAsync(User).Result.FirstName +
                                                    $" <br />" +
                                                    $" Your Request has been updated" +
                                                    $" <br />" +
                                                    $"we will contact you shortly " +
                                                    $"click the button below to check the details and status of your request" +
                                                    $" <br /> " +
                                                    $" <br /> " +
                                                    $" <br /> " +
                                                    $" <a style=\"  text-decoration: none; color: #fff; background: #101522; padding: 7px 22px; margin-right: 10px; border-radius: 50px; border: 2px solid #f82249;font-weight: 600; margin-left: 8px; margin-top: 2px; margin-bottom: 2px; line-height: 1.5;font-size: 13px;\" href ='{callbackUrl}'>Check My Request</a>" +
                                                    $" <br />" +
                                                    $" " +
                                                    $" <br />"
                                                    );

                    var admincallbackUrl = Url.Action("Edit", "Request", new { id = request.RequestId },
                                                      protocol: HttpContext.Request.Scheme);
                    await _emailSend.SendEmailAsync(admin, "Request Edited",

                                                    $"  Request from  " + request.CustomerName +
                                                    $"has been edited " +
                                                    $" <br />" +
                                                    $"click the button below to check the details of the request" +
                                                    $" <br /> " +
                                                    $" <br /> " +
                                                    $" <br /> " +
                                                    $" <a style=\"  text-decoration: none; color: #fff; background: #101522; padding: 7px 22px; margin-right: 10px; border-radius: 50px; border: 2px solid #f82249;font-weight: 600; margin-left: 8px; margin-top: 2px; margin-bottom: 2px; line-height: 1.5;font-size: 13px;\" href ='{admincallbackUrl}'>Check Request</a>" +
                                                    $" <br />" +
                                                    $" " +
                                                    $" <br />"
                                                    );


                    return(RedirectToAction("details", new { id = request.RequestId }));
                }
            }
            ModelState.AddModelError(string.Empty, "Scheduled Time Invalid! ");
            return(View(model));
        }
 public ActionResult Edit(RequestEditViewModel requestEditViewModel)
 {
     _requestService.Update(ParseEditViewModelToRequestModel(requestEditViewModel));
     return(RedirectToAction("Index"));
 }
示例#20
0
        public ActionResult Edit([Bind(Include = "RequestID,PurchaseOrderID,VIPID,LicenseTypeID,ProductID,POCName")] RequestEditViewModel reqEdit)
        {
            if (ModelState.IsValid)
            {
                Request req = db.Requests.Find(reqEdit.RequestID);

                // If there is a difference in the VIPs
                if (req.VIP.VIPID != reqEdit.VIPID)
                {
                    // Assumes that the VIP already exists because it came from a drop down list
                    VIP vip = db.VIPs.Find(reqEdit.VIPID);

                    // Remove request from old VIP
                    req.VIP.Requests.Remove(req);

                    // Add request to new VIP
                    vip.Requests.Add(req);

                    // Point the request to the new VIP
                    req.VIP = vip;
                }

                // If there is a difference in the LicenseTypes
                if (req.LicenseType.LicenseTypeID != reqEdit.LicenseTypeID)
                {
                    // Assumes that the LicenseType already exists because it came from a drop down list
                    LicenseType licenseType = db.LicenseTypes.Find(reqEdit.LicenseTypeID);

                    // Remove request from old VIP
                    req.LicenseType.Requests.Remove(req);

                    // Add request to new VIP
                    licenseType.Requests.Add(req);

                    // Point the request to the new VIP
                    req.LicenseType = licenseType;
                }

                // If there is a difference in the Products
                if (req.Product.ProductID != reqEdit.ProductID)
                {
                    // Assumes that the VIP already exists because it came from a drop down list
                    Product product = db.Products.Find(reqEdit.ProductID);

                    // Remove request from old VIP
                    req.Product.Requests.Remove(req);

                    // Add request to new VIP
                    product.Requests.Add(req);

                    // Point the request to the new VIP
                    req.Product = product;
                }

                // If there is a difference in the Point of Contacts
                if (req.PointOfContact.POCName != reqEdit.POCName)
                {
                    // Assumes that the VIP already exists because it came from a drop down list
                    //VIP vip = db.VIPs.Find(reqEdit.VIPID);

                    PointOfContact poc;

                    // If the Point of Contact already exists
                    if (db.PointOfContacts.Any(o => o.POCName == reqEdit.POCName))
                    {
                        poc = db.PointOfContacts.Find(reqEdit.POCName);
                    }
                    else
                    {
                        // Create new Point of Contact
                        poc         = new PointOfContact();
                        poc.POCName = reqEdit.POCName;
                    }

                    // Remove request from old Point of Contact
                    req.PointOfContact.Requests.Remove(req);

                    // Add request to new Point of Contact
                    poc.Requests.Add(req);

                    // Point the request to the new Point of Contact
                    req.PointOfContact = poc;
                }

                db.Entry(req).State = EntityState.Modified;
                try
                {
                    db.SaveChanges();
                    TempData["SuccessOHMsg"] = "Request " + req.RequestID + " edited";
                    return(RedirectToAction("Index"));
                }
                catch
                {
                    TempData["DangerOHMsg"] = "Problem editing the Request " + req.RequestID;
                    return(RedirectToAction("Index"));
                }
            }

            ViewBag.VIPList         = new SelectList(db.VIPs.OrderBy(x => x.VIPID), "VIPID", "VIPName");
            ViewBag.LicenseTypeList = new SelectList(db.LicenseTypes.OrderBy(x => x.LicenseTypeID), "LicenseTypeID", "LicenseTypeDesc");
            ViewBag.ProductList     = new SelectList(db.Products.OrderBy(x => x.ProductID), "ProductID", "ProductDesc");

            return(View(reqEdit));
        }
示例#21
0
        public RequestEditViewModel CreateRequestEditViewModel(RequestEntity request, bool readOnly, bool isProcess, bool isCommit)
        {
            RequestEditViewModel viewModel = new RequestEditViewModel(request, this, readOnly, isProcess, isCommit);

            return(viewModel);
        }
示例#22
0
        public ActionResult Edit(RequestEditViewModel Model, bool IsTest = false)
        {
            bool saveFailed;

            do
            {
                saveFailed = false;
                try
                {
                    if (ModelState.IsValid)
                    {
                        int id = 0;
                        if (Model.RequestID == 0) //new
                        {
                            string         enteredBy = IsTest ? "Unit Test Case" : _modifiedBy;
                            REF_REQUEST_TB request   = new REF_REQUEST_TB()
                            {
                                B_INACTIVE             = false,
                                DT_ENTERED             = DateTime.UtcNow,
                                DT_MODIFIED            = DateTime.UtcNow,
                                N_LOCATION_GROUP_SYSID = Model.SelectedLocationGroup,
                                N_REQUEST_GROUP_SYSID  = Model.SelectedRequestGroup,
                                N_TEST_GROUP_SYSID     = Model.SelectedTestGroup,
                                SZ_ENTERED_BY          = enteredBy,
                                SZ_MODIFIED_BY         = _modifiedBy
                            };
                            _uow.Repository <REF_REQUEST_TB>().Add(request);
                            _uow.SaveChanges();
                            REF_REQUEST_TB requestFound = _uow.Repository <REF_REQUEST_TB>().Find(u => u.SZ_ENTERED_BY == enteredBy &&
                                                                                                  u.SZ_MODIFIED_BY == _modifiedBy && u.N_LOCATION_GROUP_SYSID == Model.SelectedLocationGroup &&
                                                                                                  u.N_REQUEST_GROUP_SYSID == Model.SelectedRequestGroup && u.N_TEST_GROUP_SYSID == Model.SelectedTestGroup
                                                                                                  ).FirstOrDefault();
                            id = requestFound.N_REQUEST_SYSID;
                        }
                        else //edit
                        {
                            REF_REQUEST_TB request = _uow.Repository <REF_REQUEST_TB>().GetById(Model.RequestID);
                            request.DT_MODIFIED            = DateTime.UtcNow;
                            request.N_LOCATION_GROUP_SYSID = Model.SelectedLocationGroup;
                            request.N_REQUEST_GROUP_SYSID  = Model.SelectedRequestGroup;
                            request.N_TEST_GROUP_SYSID     = Model.SelectedTestGroup;
                            request.SZ_MODIFIED_BY         = _modifiedBy;

                            _uow.Repository <REF_REQUEST_TB>().Update(request);
                            _uow.SaveChanges();
                            id = Model.RequestID;
                        }

                        return(RedirectToAction("Index", new { ID = id }));
                    }

                    Model.LocationGroups = (List <SelectListItem>)_locationRepo.GetLocationGroupsSelectList();
                    Model.RequestGroups  = (List <SelectListItem>)_requestRepo.GetRequestGroups();
                    Model.TestGroups     = (List <SelectListItem>)_testRepo.GetTestGroupsSelectList();

                    return(View(Model));
                }
                catch (DbEntityValidationException ex)
                {
                    StringBuilder sb = new StringBuilder();

                    foreach (var failure in ex.EntityValidationErrors)
                    {
                        sb.AppendFormat("{0} failed validation:\n\n", failure.Entry.Entity.GetType());
                        foreach (var error in failure.ValidationErrors)
                        {
                            sb.AppendFormat("- {0} : {1}", error.PropertyName, error.ErrorMessage);
                            sb.AppendLine();
                        }
                    }
                    if (ex.InnerException == null)
                    {
                        ViewBag.Message = "Function: RequestController.Edit_POST\n\nError: " + ex.Message + "\n\n" + sb;
                    }
                    else
                    {
                        ViewBag.Message = "Function: RequestController.Edit_POST\n\nError: " + ex.Message + "\n\n" + sb + "\n\n" + ex.InnerException.Message;
                    };
                }
                catch (DbUpdateConcurrencyException ex)
                {
                    saveFailed = true;

                    var entry = ex.Entries.Single();
                    entry.OriginalValues.SetValues(entry.GetDatabaseValues());
                }
                catch (DataException ex)
                {
                    if (ex.InnerException == null)
                    {
                        ViewBag.Message = "Function: RequestController.Edit_POST\n\nError: " + ex.Message + "\n\nBaseException: " + ex.GetBaseException().Message;
                    }
                    else
                    {
                        ViewBag.Message = "Function: RequestController.Edit_POST\n\nError: " + ex.Message + "\n\nBaseException: " + ex.GetBaseException().Message + "\n\nInnerException: " + ex.InnerException.Message;
                    };
                }
                catch (Exception ex)
                {
                    if (ex.InnerException == null)
                    {
                        ViewBag.Message = "Function: RequestController.Edit_POST\n\nError: " + ex.Message;
                    }
                    else
                    {
                        ViewBag.Message = "Function: RequestController.Edit_POST\n\nError: " + ex.Message + "\n\nBaseException: " + ex.InnerException.Message;
                    };
                };
            } while (saveFailed);

            Session["ErrorMessage"] = ViewBag.Message;
            return(RedirectToAction("InternalServerError", "Error"));
        }
示例#23
0
        public RequestEditControl(RequestEditViewModel viewModel)
        {
            InitializeComponent();

            _viewModel = viewModel;
        }