示例#1
0
 public JsonResult List(Hubs.FilterSortConfig config, int jtStartIndex = 0, int jtPageSize = 0, string jtSorting = null)
 {
     try
     {
         List <ViewModels.ProductViewModel> products = new List <ViewModels.ProductViewModel>();
         var userClaimPrincipal = User as ClaimsPrincipal;
         int total = 0;
         if (userClaimPrincipal.IsInRole("Admin"))
         {
             products = productRepository.GetProducts(jtStartIndex, jtPageSize, jtSorting, config);
             total    = productRepository.GetProductsTotal(0);
         }
         else
         {
             var uservm = userRepository.GetUser(User.Identity.Name);
             products = productRepository.GetProducts(uservm.Id, jtStartIndex, jtPageSize, jtSorting, config);
             total    = productRepository.GetProductsTotal(uservm.Id);
         }
         return(Json(new { Result = "OK", Records = products, TotalRecordCount = total }));
     }
     catch (Exception ex)
     {
         return(Json(new { Result = "ERROR", Message = ex.Message }));
     }
 }
示例#2
0
        public static void SendUserTotalMoneyUpdate(int UserId, double amount)
        {
            var db             = new DAL.ServiceContext();
            var userRepository = new Repositories.UserRepository(db);
            var user           = userRepository.GetUser(UserId);

            GlobalHost.ConnectionManager.GetHubContext <ServiceHub>().Clients.Clients(user.SignalRConnections).updateUserTotal(amount);
        }
示例#3
0
        public DTOs.GeneralHubResponseObject ProcessIncoming(DTOs.GeneralHubRequestObject Request)
        {
            GeneralHubResponseObject result = new GeneralHubResponseObject();

            var jconf     = JsonConvert.SerializeObject(Request.RequestData);
            var osRequest = JsonConvert.DeserializeObject <OrderServiceRequesObject>(jconf);



            var signalRGroup = serviceRepository.GetSignalRGroup(Request.ServiceId);

            switch (osRequest.Command)
            {
            case "StageProduct":
                var spconf = JsonConvert.SerializeObject(osRequest.CommandData);
                var spdata = JsonConvert.DeserializeObject <Hubs.ProductDataWrap>(spconf);
                var res    = StageProduct(spdata.Product, Request.ServiceId.ToString(), Request.ConnectionId);
                result.ResponseData = res;
                if (res.ErrorNumber == 0)
                {
                    result.Success = true;
                }
                else
                {
                    result.Success      = false;
                    result.ErrorMessage = res.ErrorMessage;
                }
                break;

            case "LoadProducts":
                var sconf        = JsonConvert.SerializeObject(osRequest.CommandData);
                var searchConfig = JsonConvert.DeserializeObject <Hubs.SearchConfigWrap>(sconf);
                var user         = userRepository.GetUser(Request.User.Identity.Name);
                var pres         = getProducts(user.Id, signalRGroup, searchConfig.SearchConfig);
                result.ResponseData = pres;
                break;

            case "RemoveProduct":
                var rmspconf = JsonConvert.SerializeObject(osRequest.CommandData);
                var rmspdata = JsonConvert.DeserializeObject <Hubs.ProductRemoveCommand>(rmspconf);
                RemoveProduct(rmspdata.Id, signalRGroup, Request.ConnectionId);
                break;

            default:
                result.Success      = false;
                result.ErrorMessage = "Unknown/invalid Command";
                break;
            }

            return(result);
        }
示例#4
0
        public ActionResult LogOff()
        {
            DAL.ServiceContext          db             = new DAL.ServiceContext();
            Repositories.UserRepository userRepository = new Repositories.UserRepository(db);

            var user     = userRepository.GetUser(User.Identity.Name);
            var toRemove = user.SignalRConnections.ToList();

            foreach (var item in toRemove)
            {
                var rm = db.SignalRConnections.FirstOrDefault(ln => ln.SignalRConnectionId == item);
                var ms = rm.MinerStatus;
                db.MinerStatus.Remove(ms);
                db.SignalRConnections.Remove(rm);
            }
            db.SaveChanges();

            AuthenticationManager.SignOut(DefaultAuthenticationTypes.ApplicationCookie);
            return(RedirectToAction("Index", "Home"));
        }
        public bool ImportSource(string src, int ownerId, List <string> connections)
        {
            try
            {
                var user   = userRepository.GetUser(ownerId);
                var dbuser = userContext.GetUser(ownerId);

                var xe    = XElement.Load(src);
                var items = xe.Elements("channel").Elements("item");

                if (items.Count() == 0)
                {
                    return(false);
                }

                int cntr  = 0;
                int total = items.Count();
                foreach (var item in items)
                {
                    cntr++;
                    Utils.ProgressDialogUtils.Update("productImport", BaseResource.Get("ProcessingItem") + " (" + cntr + " / " + total + ")", Utils.ProductUtils.calc_percent(cntr, total), connections);

                    var pmodel = buildImportModel(item, dbuser);
                    _db.ProductTmpImport.Add(pmodel);

                    var existing = _db.Products.FirstOrDefault(ln => ln.SrcIdentifier == pmodel.SrcId && ln.Owner.ID == user.Id);

                    if (existing == null)
                    {
                        _db.Products.Add(new Models.ProductModel()
                        {
                            Name              = pmodel.Title,
                            Description       = pmodel.Description,
                            ImageUrl          = pmodel.ImageLink,
                            Owner             = dbuser,
                            PartNo            = pmodel.Mpn,
                            Price             = getPrice(pmodel.PriceString),
                            SrcIdentifier     = pmodel.SrcId,
                            ProductIdentifier = Guid.NewGuid().ToString()
                        });
                    }
                    else
                    {
                        existing.Description = pmodel.Description;
                        existing.ImageUrl    = pmodel.ImageLink;
                        existing.Name        = pmodel.Title;
                        existing.Owner       = pmodel.Owner;
                        existing.PartNo      = pmodel.Mpn;
                        existing.Price       = getPrice(pmodel.PriceString);
                    }
                }

                _db.SaveChanges();

                Utils.ProgressDialogUtils.Update("productImport", BaseResource.Get("RecreatingLuceneIndex"), 100, user.SignalRConnections);
                Utils.LuceneUtils.AddUpdateLuceneIndex(_db.ProductTmpImport.Where(ln => ln.Owner.ID == user.Id));
                Utils.ProgressDialogUtils.Update("productImport", BaseResource.Get("ProductImportFinished"), 100, user.SignalRConnections);

                return(true);
            }
            catch (Exception ex)
            {
                return(false);

                throw;
            }
        }
示例#6
0
        private ViewModels.OrderViewModel _processOrderRequest(OrderDataDTO orderDTO, string group)
        {
            IOrderProcess orderProcessFactory = null;

            if (Utils.ValidationUtils.IsDangerousString(orderDTO.OrderIdentifier, out int badidx))
            {
                return new ViewModels.OrderViewModel()
                       {
                           ErrorMessage = "Invalid orderIdentifier"
                       }
            }
            ;

            var orderViewModel = orderRepository.GetOrder(orderDTO.OrderIdentifier);

            var service = db.ServiceSettings.FirstOrDefault(ln => ln.ServiceUrl == group);

            if (service == null)
            {
                return new ViewModels.OrderViewModel()
                       {
                           ErrorMessage = "could not get service..."
                       }
            }
            ;


            orderProcessFactory = Factories.OrderProcessFactory.GetOrderProcessImplementation(service.ServiceType);

            if (orderViewModel == null)
            {
                if (orderDTO.Items.Count == 0)
                {
                    return new ViewModels.OrderViewModel()
                           {
                               ErrorMessage = BaseResource.Get("NoItemsForOrder")
                           }
                }
                ;

                orderViewModel = orderProcessFactory.CheckOrder(orderDTO);
                if (!string.IsNullOrEmpty(orderViewModel.ErrorMessage))
                {
                    return(orderViewModel);
                }

                var orderItems     = orderRepository.CheckProducts(orderDTO.Items);
                var productOwnerId = orderItems.FirstOrDefault().OwnerId; // --!
                var storeUser      = userRepository.GetUser(productOwnerId);
                var customerUser   = userRepository.GetUserFromSignalR(Context.ConnectionId);

                if (storeUser == null || customerUser == null || productOwnerId == -1 || orderItems.Count == 0)
                {
                    return(new ViewModels.OrderViewModel()
                    {
                        ErrorMessage = "Invalid Order-Data...",
                    });
                }

                orderViewModel.Items        = orderItems;
                orderViewModel.CustomerUser = customerUser;
                orderViewModel.StoreUser    = storeUser;
            }

            bool isStoreUser = false;

            if (Context.User.Identity.Name == orderViewModel.StoreUser.Name)
            {
                isStoreUser = true;
            }

            orderProcessFactory = Factories.OrderProcessFactory.GetOrderProcessImplementation(Enums.EnumServiceType.OrderService);
            var orderVMResult = orderProcessFactory.ProcessOrder(orderViewModel, isStoreUser);

            orderViewModel = orderVMResult;

            return(orderViewModel);
        }