public static ProductRespObj LoadProducts(ProductSearchObj regObj, string username)
        {
            var response = new ProductRespObj
            {
                Status = new APIResponseStatus
                {
                    IsSuccessful = false,
                    Message      = new APIResponseMessage(),
                },
            };

            try
            {
                var apiResponse = new APIHelper(APIEndpoints.LOAD_PRODUCTS_ENDPOINT, username, Method.POST).ProcessAPI <ProductSearchObj, ProductRespObj>(regObj, out var msg);
                if (msg.Code == 0 && string.IsNullOrEmpty(msg.TechMessage) && string.IsNullOrEmpty(msg.Message))
                {
                    return(apiResponse);
                }

                response.Status.Message.FriendlyMessage  = msg.Message;
                response.Status.Message.TechnicalMessage = msg.TechMessage;
                return(response);
            }
            catch (Exception ex)
            {
                UtilTools.LogE(ex.StackTrace, ex.Source, ex.GetBaseException().Message);
                response.Status.Message.FriendlyMessage  = "Error Occurred! Please try again later";
                response.Status.Message.TechnicalMessage = "Error: " + ex.GetBaseException().Message;
                return(response);
            }
        }
        public JsonResult ProcessDeleteRequest(int clientId, int prodId)
        {
            try
            {
                var userData = MvcApplication.GetUserData(User.Identity.Name) ?? new UserData();

                if (userData.UserId < 1)
                {
                    return(Json(new { IsSuccessful = false, Error = "Your session has expired", IsAuthenticated = false }));
                }

                if (clientId < 1 || prodId < 1)
                {
                    return(Json(new { IsAuthenticated = true, IsSuccessful = false, Error = "Invalid / Empty Selection" }));
                }

                var passObj = new DeleteProductObj
                {
                    AdminUserId = userData.UserId,
                    ProductId   = prodId,
                };

                var response = ProductService.DeleteProduct(passObj, User.Identity.Name);
                if (!response.Status.IsSuccessful)
                {
                    return(Json(new { IsAuthenticated = true, IsSuccessful = false, Error = response.Status.Message.FriendlyMessage }));
                }

                var searchObj = new ProductSearchObj
                {
                    AdminUserId = userData.UserId,
                    ClientId    = clientId,
                    ProductId   = prodId,
                    Status      = -2,
                };

                var retVal = ProductService.LoadProducts(searchObj, userData.Username);
                if (retVal?.Status != null && retVal.Status.IsSuccessful)
                {
                    if (retVal.Products != null && retVal.Products.Any())
                    {
                        Session[$"_myProductList_{clientId}"] = retVal.Products;
                    }
                }

                return(Json(new { IsAuthenticated = true, IsSuccessful = true, Error = "" }));
            }
            catch (Exception ex)
            {
                UtilTools.LogE(ex.StackTrace, ex.Source, ex.Message);
                return(Json(new { IsAuthenticated = true, IsSuccessful = false, IsReload = false, Error = "Process Error Occurred! Please try again later" }));
            }
        }
Beispiel #3
0
        public async Task <ActionResult <ProductRespObj> > GetProductById([FromQuery] ProductSearchObj search)
        {
            try
            {
                if (search.ProductId < 1)
                {
                    return(new ProductRespObj
                    {
                        Status = new APIResponseStatus {
                            IsSuccessful = false, Message = new APIResponseMessage {
                                FriendlyMessage = "Product Id is required"
                            }
                        }
                    });
                }

                var response             = _repo.GetProduct(search.ProductId);
                var allowableCollaterals = await _allowableCollateralRepository.GetAllowableCollateralByProductIdAsync(search.ProductId);

                var collateralTypeIds = new List <int>();

                foreach (var item in allowableCollaterals)
                {
                    collateralTypeIds.Add(item.CollateralTypeId);
                }

                response.AllowableCollaterals = collateralTypeIds.ToArray();

                var resplist = new List <ProductObj> {
                    response
                };
                return(new ProductRespObj
                {
                    Products = resplist,
                });
            }
            catch (Exception ex)
            {
                var errorCode = ErrorID.Generate(5);
                _logger.Error($"ErrorID : {errorCode} Ex : {ex?.Message ?? ex?.InnerException?.Message} ErrorStack : {ex?.StackTrace}");
                return(new ProductRespObj
                {
                    Status = new APIResponseStatus {
                        IsSuccessful = false, Message = new APIResponseMessage {
                            FriendlyMessage = "Error Occurred", TechnicalMessage = ex?.Message, MessageId = errorCode
                        }
                    }
                });
            }
        }
        public ActionResult LoadProducts()
        {
            var add = new NameValueObject {
                Id = 0, Name = "-- Empty Product List --"
            };

            try
            {
                var userData = MvcApplication.GetUserData(User.Identity.Name);
                if (userData == null || userData.UserId < 1)
                {
                    return(Json(new List <NameValueObject> {
                        add
                    }, JsonRequestBehavior.AllowGet));
                }

                var searchObj = new ProductSearchObj
                {
                    AdminUserId = userData.UserId,
                    Status      = -2,
                    ClientId    = 0,
                    ProductId   = 0
                };

                var retVal = ProductService.LoadProducts(searchObj, userData.Username);
                if (retVal?.Status == null)
                {
                    return(Json(new List <NameValueObject> {
                        add
                    }, JsonRequestBehavior.AllowGet));
                }

                if (!retVal.Status.IsSuccessful)
                {
                    return(Json(new List <NameValueObject> {
                        add
                    }, JsonRequestBehavior.AllowGet));
                }

                if (!retVal.Products.Any())
                {
                    return(Json(new List <NameValueObject> {
                        add
                    }, JsonRequestBehavior.AllowGet));
                }

                var parentTabs = retVal.Products.Where(c => c.Status == 1).OrderBy(c => c.ClientId);
                add = new NameValueObject {
                    Id = 0, Name = "-- Select Product --"
                };

                var jsonitem = parentTabs.Select(o => new NameValueObject {
                    Id = o.ProductId, Name = o.Name
                }).ToList();
                jsonitem.Insert(0, add);
                return(Json(jsonitem, JsonRequestBehavior.AllowGet));
            }
            catch (Exception ex)
            {
                UtilTools.LogE(ex.StackTrace, ex.Source, ex.Message);
                return(Json(new List <NameValueObject> {
                    add
                }, JsonRequestBehavior.AllowGet));
            }
        }
        public ActionResult _ProductListView(int clientId)
        {
            try
            {
                ViewBag.Error = "";
                var userData = MvcApplication.GetUserData(User.Identity.Name);
                if (userData == null || userData.UserId < 1)
                {
                    ViewBag.Error = "Session Has Expired! Please Re-Login";
                    return(View(new List <ProductObj>()));
                }

                if (clientId < 1)
                {
                    ViewBag.Error = "Invalid Client Information";
                    return(View(new List <ProductObj>()));
                }

                if (Session[$"_myProductList_{clientId}"] is List <ProductObj> prodList && prodList.Any())
                {
                    return(View(prodList));
                }

                var searchObj = new ProductSearchObj
                {
                    AdminUserId = userData.UserId,
                    ClientId    = clientId,
                    Status      = -2,
                };

                var retVal = ProductService.LoadProducts(searchObj, userData.Username);
                if (retVal?.Status == null)
                {
                    ViewBag.Error = "Product List is empty!";
                    return(View(new List <ProductObj>()));
                }

                if (!retVal.Status.IsSuccessful)
                {
                    ViewBag.Error = string.IsNullOrEmpty(retVal.Status.Message.FriendlyMessage)
                            ? "Product list is empty!"
                            : retVal.Status.Message.FriendlyMessage;
                    return(View(new List <ProductObj>()));
                }
                if (retVal.Products == null || !retVal.Products.Any())
                {
                    ViewBag.Error = "Product list is empty!";
                    return(View(new List <ProductObj>()));
                }

                Session[$"_myProductList_{clientId}"] = retVal.Products;

                return(View(retVal.Products));
            }
            catch (Exception ex)
            {
                ViewBag.Error = "Unable to load Product list! Please try again later";
                UtilTools.LogE(ex.StackTrace, ex.Source, ex.Message);
                return(View(new List <ProductObj>()));
            }
        }
        public JsonResult ProcessEditProductRequest(RegProductObj model)
        {
            try
            {
                var userData = MvcApplication.GetUserData(User.Identity.Name) ?? new UserData();

                if (userData.UserId < 1)
                {
                    return(Json(new { IsSuccessful = false, Error = "Your session has expired", IsAuthenticated = false }));
                }

                var selProd = Session["_curSelectedProductInfo_"] as ProductObj;
                if (selProd == null || selProd.ProductId < 1)
                {
                    return(Json(new { IsSuccessful = false, Error = "Your session has expired", IsAuthenticated = false }));
                }

                if (model == null)
                {
                    return(Json(new { IsSuccessful = false, Error = "Your session has expired", IsAuthenticated = false }));
                }

                if (string.IsNullOrEmpty(model.Name) || model.Name.Length < 2)
                {
                    return(Json(new { IsAuthenticated = true, IsSuccessful = false, IsReload = false, Error = "Invalid Product Name" }));
                }



                if (model.ClientId < 1)
                {
                    return(Json(new { IsSuccessful = false, Error = "Invalid Client Information", IsAuthenticated = true, IsReload = false, }));
                }


                if (string.IsNullOrEmpty(model.Description) || model.Description.Length < 2)
                {
                    return(Json(new { IsAuthenticated = true, IsSuccessful = false, IsReload = false, Error = "Invalid Product Description" }));
                }

                var addObj = new EditProductObj
                {
                    AdminUserId = userData.UserId,
                    ClientId    = model.ClientId,
                    Description = model.Description,
                    Name        = model.Name,
                    Status      = model.StatusVal? 1 : 0,
                    ProductId   = model.ProductId,
                };

                var response = ProductService.UpdateProduct(addObj, userData.Username);
                if (response?.Status == null)
                {
                    return(Json(new { IsAuthenticated = true, IsSuccessful = false, IsReload = false, Error = "Error Occurred! Please try again later" }));
                }

                if (!response.Status.IsSuccessful)
                {
                    return(Json(new { IsAuthenticated = true, IsSuccessful = false, IsReload = false, Error = string.IsNullOrEmpty(response.Status.Message.TechnicalMessage) ? "Process Failed! Unable to add nomination Source" : response.Status.Message.TechnicalMessage }));
                }


                var searchObj = new ProductSearchObj
                {
                    AdminUserId = userData.UserId,
                    ClientId    = model.ClientId,
                    Status      = -2,
                };

                var retVal = ProductService.LoadProducts(searchObj, userData.Username);
                if (retVal?.Status != null && retVal.Status.IsSuccessful)
                {
                    if (retVal.Products != null && retVal.Products.Any())
                    {
                        Session[$"_myProductList_{model.ClientId}"] = retVal.Products;
                    }
                }

                return(Json(new { IsAuthenticated = true, IsSuccessful = true, IsReload = false, Error = "" }));
            }
            catch (Exception ex)
            {
                UtilTools.LogE(ex.StackTrace, ex.Source, ex.Message);
                return(Json(new { IsAuthenticated = true, IsSuccessful = false, IsReload = false, Error = "Process Error Occurred! Please try again later" }));
            }
        }