Example #1
0
        public ServiceResult <bool> UpdateProduct(int productId, ProductBase product)
        {
            if (productId < 1)
            {
                return(ServiceResult <bool> .CreateErrorResult($"{nameof(productId)} must be more than 0"));
            }

            bool isProductValid;

            try
            {
                isProductValid = ValidateProductBase(product);
            }
            catch (ArgumentException aex)
            {
                return(ServiceResult <bool> .CreateErrorResult(aex.Message));
            }

            if (!isProductValid)
            {
                return(ServiceResult <bool> .CreateErrorResult("Model is not valid"));
            }

            try
            {
                var result = _productProvider.UpdateBaseProduct(productId, product);
                return(ServiceResult <bool> .CreateSuccessResult(result));
            }
            catch (Exception ex)
            {
                return(ServiceResult <bool> .CreateErrorResult(ex.Message));
            }
        }
Example #2
0
        public ServiceResult UpdateSystemConfig(SystemInformationDto[] systemInformations)
        {
            var entities = Mapper.Map <SystemInformation[]>(systemInformations);

            Repository.UpdateSystemConfig(entities);
            return(ServiceResult.CreateSuccessResult());
        }
Example #3
0
        public ServiceResult <TDto> AddProductToOrderTable <TDto>(long orderTableID, long productID, decimal quantity)
        {
            var product = ProductRepository.GetByID(productID);

            if (product == null)
            {
                return(ServiceResult <TDto> .CreateFailResult(new Error(SmsCache.Message.Get(ConstMessageIds.Business_DataNotExist), ErrorType.Business)));
            }

            var order = Repository.Get(x => x.OrderTables.Any(y => y.ID == orderTableID));

            if (order == null)
            {
                return(ServiceResult <TDto> .CreateFailResult(new Error(SmsCache.Message.Get(ConstMessageIds.Business_DataNotExist), ErrorType.Business)));
            }

            var orderTable = order.OrderTables.First(y => y.ID == orderTableID);

            orderTable.OrderDetails.Add(new OrderDetail
            {
                Quantity    = quantity,
                Product     = product,
                OrderStatus = SmsCache.BranchConfigs.Current.UseKitchenFunction ? OrderStatus.Ordered : OrderStatus.Done
            });
            Repository.Save(order);

            return(ServiceResult <TDto> .CreateSuccessResult(Mapper.Map <TDto>(orderTable)));
        }
        public ServiceResult <IList <TModel> > GetAccessiblePagesForUser <TModel>(long userID)
        {
            if (userID == 0)
            {
                return(GetPagesByTypes <TModel>(PageType.Public));
            }

            var user = UserRepository.GetByID(userID);

            if (user.IsSystemAdmin)
            {
                return(GetPagesByTypes <TModel>(PageType.Public, PageType.Protected, PageType.System));
            }

            var accessiblePageIds = new List <long>();

            foreach (var role in user.Roles.Where(x => x.Enable))
            {
                accessiblePageIds.AddRange(role.Pages.Where(x => !ExcludedPages.Contains(x.ID)).Select(x => x.ID));
            }

            accessiblePageIds = accessiblePageIds.Distinct().ToList();

            var result = Repository.List(x => x.Enable && (accessiblePageIds.Contains(x.ID) ||
                                                           x.Type == PageType.Public ||
                                                           (user.UseSystemConfig && x.Type == PageType.System))).ToList();

            return(ServiceResult <IList <TModel> > .CreateSuccessResult(Mapper.Map <IList <TModel> >(result)));
        }
Example #5
0
        public ServiceResult UpdateUserBranch(UserInfoDto user, UserConfigDto userConfig)
        {
            Repository.SaveUserBranch(Mapper.Map <User>(user));
            UserConfigRepository.SaveUserProfile(userConfig.UserID, userConfig.BranchID, IsSuspended: userConfig.IsSuspended);

            return(ServiceResult.CreateSuccessResult());
        }
Example #6
0
        public ServiceResult <TDto> UpdateOrderedProductStatus <TDto>(long orderDetailID, OrderStatus value)
        {
            var order = Repository.Get(x => x.OrderTables.Any(y => y.OrderDetails.Any(z => z.ID == orderDetailID)));

            if (order == null)
            {
                return(ServiceResult <TDto> .CreateFailResult(new Error(SmsCache.Message.Get(ConstMessageIds.Business_DataNotExist), ErrorType.Business)));
            }

            var orderTable  = order.OrderTables.First(y => y.OrderDetails.Any(z => z.ID == orderDetailID));
            var orderDetail = orderTable.OrderDetails.First(z => z.ID == orderDetailID);

            orderDetail.OrderStatus = value;
            Repository.Save(order);

            if (orderDetail.OrderStatus == OrderStatus.KitchenRejected)
            {
                RejectRepository.Save(new Reject
                {
                    BranchID       = SmsCache.UserContext.CurrentBranchId,
                    ProductCode    = orderDetail.Product.ProductCode,
                    ProductVNName  = orderDetail.Product.VNName,
                    ProductENName  = orderDetail.Product.ENName,
                    Quantity       = orderDetail.Quantity,
                    UnitVNName     = orderDetail.Product.Unit.VNName,
                    UnitENName     = orderDetail.Product.Unit.ENName,
                    OrderComment   = orderDetail.Comment,
                    KitchenComment = orderDetail.KitchenComment,
                    CreatedDate    = DateTime.Now,
                    CreatedUser    = SmsCache.UserContext.UserName
                });
            }

            return(ServiceResult <TDto> .CreateSuccessResult(Mapper.Map <TDto>(orderDetail)));
        }
        public ServiceResult <IList <PageMenuDto> > GetMenuByPageIds(IList <long> pageList)
        {
            var menus  = Mapper.Map <IList <PageMenuDto> >(Repository.ListAll());
            var result = menus.Where(x => pageList.Contains(x.PageID)).ToList();

            for (var i = 0; i < result.Count; i++)
            {
                if (result[i].ParentID == 0)
                {
                    continue;
                }
                if (result.Any(x => x.ID == result[i].ParentID))
                {
                    continue;
                }

                var menu = menus.FirstOrDefault(x => x.ID == result[i].ParentID);
                if (menu != null)
                {
                    result.Add(menu);
                }
            }

            return(ServiceResult <IList <PageMenuDto> > .CreateSuccessResult(result));
        }
Example #8
0
        public ServiceResult <ProductBase> CreateProduct(ProductBase product)
        {
            bool isProductValid;

            try
            {
                isProductValid = ValidateProductBase(product);
            }
            catch (ArgumentException aex)
            {
                return(ServiceResult <ProductBase> .CreateErrorResult(aex.Message));
            }

            if (!isProductValid)
            {
                return(ServiceResult <ProductBase> .CreateErrorResult("Model is not valid"));
            }

            try
            {
                var result = _productProvider.CreateBaseProduct(product);
                return(ServiceResult <ProductBase> .CreateSuccessResult(result));
            }
            catch (Exception ex)
            {
                return(ServiceResult <ProductBase> .CreateErrorResult(ex.Message));
            }
        }
Example #9
0
        public virtual ServiceResult <TDto> Save(TDto dto)
        {
            var entity = Mapper.Map <TEntity>(dto);

            Repository.Save(entity);

            return(ServiceResult <TDto> .CreateSuccessResult(Mapper.Map <TDto>(entity)));
        }
Example #10
0
        public virtual ServiceResult DeleteInCurrentBranch(long primaryKey)
        {
            var result = Repository.DeleteInCurrentBranch(primaryKey);

            return(result
                ? ServiceResult.CreateSuccessResult()
                : ServiceResult.CreateFailResult(new Error(SmsCache.Message.Get(ConstMessageIds.Business_DataNotExist), ErrorType.Business)));
        }
Example #11
0
        public virtual ServiceResult <TModel> GetByIDInCurrentBranch <TModel>(long primaryKey)
        {
            var result = Repository.GetByIDInCurrentBranch(primaryKey);

            return(result == null
               ? ServiceResult <TModel> .CreateFailResult(new Error(SmsCache.Message.Get(ConstMessageIds.Business_DataNotExist), ErrorType.Business))
               : ServiceResult <TModel> .CreateSuccessResult(Mapper.Map <TModel>(result)));
        }
Example #12
0
        public ServiceResult <UploadedFileDto> GetByPhysicalPath(string physicalPath)
        {
            var result = Repository.Get(x => x.PhysicalPath.ToLower() == physicalPath.ToLower());

            return(result == null
                ? ServiceResult <UploadedFileDto> .CreateFailResult()
                : ServiceResult <UploadedFileDto> .CreateSuccessResult(Mapper.Map <UploadedFileDto>(result)));
        }
Example #13
0
        public ServiceResult SaveOrderDiscount(long orderID, OrderDiscountDto[] orderDiscounts)
        {
            var discounts = Mapper.Map <OrderDiscount[]>(orderDiscounts);

            discounts.Apply(x => x.OrderID = orderID);
            Repository.SaveDiscounts(orderID, discounts);

            return(ServiceResult.CreateSuccessResult());
        }
Example #14
0
        public ServiceResult <UserConfigDto> SaveCashierInfo(long defaultAreaID, decimal listTableHeight)
        {
            var result = Repository.SaveUserProfile(SmsCache.UserContext.UserID, SmsCache.UserContext.CurrentBranchId, defaultAreaID, listTableHeight);

            SmsCache.UserContext.DefaultAreaID   = defaultAreaID;
            SmsCache.UserContext.ListTableHeight = listTableHeight;

            return(ServiceResult <UserConfigDto> .CreateSuccessResult(Mapper.Map <UserConfigDto>(result)));
        }
Example #15
0
        public void ServiceResult_CreateSuccessResult()
        {
            ServiceResult <object> result = null;

            Assert.DoesNotThrow(() => result = ServiceResult <object> .CreateSuccessResult(new object()));
            Assert.IsNotNull(result);
            Assert.IsFalse(result.IsErrored);
            Assert.IsInstanceOf(typeof(object), result.Result);
            Assert.IsNull(result.ErrorMessage);
        }
        public ServiceResult <IList <RoleDto> > GetByUserID(long userID)
        {
            if (userID == 0)
            {
                return(ServiceResult <IList <RoleDto> > .CreateSuccessResult(new List <RoleDto>()));
            }

            var result = Repository.List(x => x.UsersInRole.Select(y => y.ID).Contains(userID)).ToList();

            return(ServiceResult <IList <RoleDto> > .CreateSuccessResult(Mapper.Map <IList <RoleDto> >(result)));
        }
Example #17
0
        public ServiceResult UpdateUserSystem(UserDto user)
        {
            if (Repository.Exists(x => x.Username == user.Username))
            {
                return(ServiceResult.CreateFailResult());
            }

            Repository.SaveUserSystem(Mapper.Map <User>(user));

            return(ServiceResult.CreateSuccessResult());
        }
        private ServiceResult <IList <TModel> > GetPagesByTypes <TModel>(params PageType[] types)
        {
            if (types == null || !types.Any())
            {
                return(ServiceResult <IList <TModel> > .CreateSuccessResult(Mapper.Map <IList <TModel> >(new List <Page>())));
            }

            var result = Repository.List(x => types.Contains(x.Type) && x.Enable).ToList();

            return(ServiceResult <IList <TModel> > .CreateSuccessResult(Mapper.Map <IList <TModel> >(result)));
        }
Example #19
0
        public ServiceResult <IList <Company> > GetCompaniesForProduct(int baseProductId)
        {
            if (baseProductId <= 0)
            {
                return(ServiceResult <IList <Company> > .CreateErrorResult("BaseProductId must be more than 0"));
            }

            var result = _companyProvider.GetCompaniesFor(baseProductId);

            return(ServiceResult <IList <Company> > .CreateSuccessResult(result));
        }
Example #20
0
        public ServiceResult <Company> Get(int id)
        {
            if (id <= 0)
            {
                return(ServiceResult <Company> .CreateErrorResult("Id must be great than 0"));
            }

            var result = _companyProvider.GetCompany(id);

            return(ServiceResult <Company> .CreateSuccessResult(result));
        }
Example #21
0
        public ServiceResult <bool> DeleteCompany(int id)
        {
            if (id <= 0)
            {
                return(ServiceResult <bool> .CreateErrorResult($"{nameof(id)} can not be less than 1"));
            }

            var result = _companyProvider.DeleteCompany(id);

            return(ServiceResult <bool> .CreateSuccessResult(result));
        }
Example #22
0
        public ServiceResult UpdateUserProfile(string password, string firstName, string lastName, string cellPhone, string email, string address, string theme, int pageSize)
        {
            Repository.UpdateProfile(SmsCache.UserContext.UserID, password, firstName, lastName, cellPhone, email, address);
            UserConfigRepository.SaveThemeAndPageSize(SmsCache.UserContext.UserID, SmsCache.UserContext.CurrentBranchId, theme, pageSize);

            SmsCache.UserContext.Theme     = theme;
            SmsCache.UserContext.PageSize  = pageSize;
            SmsCache.UserContext.FirstName = firstName;
            SmsCache.UserContext.LastName  = lastName;

            return(ServiceResult.CreateSuccessResult());
        }
Example #23
0
        public void ServiceResult_AppendErrorMessage_InitialSuccessResult_NewResult()
        {
            ServiceResult <object> initialResult = ServiceResult <object> .CreateSuccessResult(new object());

            ServiceResult <object> result = null;
            string errorMessage           = "error";

            Assert.DoesNotThrow(() => result = initialResult.AppendErrorMessage(errorMessage));
            Assert.IsNotNull(result);
            Assert.IsInstanceOf(typeof(object), result.Result);
            Assert.IsTrue(result.IsErrored);
            Assert.IsNotNull(result.Result);
            Assert.AreEqual(errorMessage, result.ErrorMessage);
        }
Example #24
0
        public ServiceResult <IList <Company> > GetCompanies(PageRequest pageInfo)
        {
            string errorMessage;
            var    isValid = ValidatePageRequest(pageInfo, out errorMessage);

            if (!isValid)
            {
                return(ServiceResult <IList <Company> > .CreateErrorResult(errorMessage));
            }

            var result = _companyProvider.GetCompanies(pageInfo);

            return(ServiceResult <IList <Company> > .CreateSuccessResult(result));
        }
Example #25
0
        public ServiceResult <IList <TDto> > GetByPageID <TDto>(long pageID, bool includeGlobalLabels = false)
        {
            var ids = new List <long> {
                pageID
            };

            if (includeGlobalLabels)
            {
                ids.Add(ConstPage.Global);
            }

            var labels = Repository.List(x => ids.Contains(x.Page.ID) && x.BranchID == (SmsCache.UserContext == null ? ConstConfig.NoBranchID : SmsCache.UserContext.CurrentBranchId)).ToList();

            return(ServiceResult <IList <TDto> > .CreateSuccessResult(Mapper.Map <IList <TDto> >(labels)));
        }
Example #26
0
        public ServiceResult Payment(long orderID, string taxInfo, decimal tax, decimal serviceFee, PaymentMethod paymentMethod)
        {
            var order = Repository.GetByID(orderID);

            if (order == null)
            {
                return(ServiceResult.CreateFailResult());
            }

            InvoiceRepository.CreateInvoice(order, SmsCache.UserContext.UserID, SmsCache.BranchConfigs.Current.Currency, tax, serviceFee, taxInfo, paymentMethod);

            order.OrderProgressStatus = OrderProgressStatus.Done;
            Repository.Save(order);

            return(ServiceResult.CreateSuccessResult());
        }
Example #27
0
        public ServiceResult <TModel> Get <TModel>(string username, string password)
        {
            var user = Repository.Get(x => x.Username == username && x.Password == EncryptionHelper.SHA256Hash(password));

            if (user == null)
            {
                return(ServiceResult <TModel> .CreateFailResult(new Error(SmsCache.Message.Get(ConstMessageIds.Login_UsernamePasswordInvalid), ErrorType.Business)));
            }

            if (user.IsLockedOut)
            {
                return(ServiceResult <TModel> .CreateFailResult(new Error(SmsCache.Message.Get(ConstMessageIds.Login_UserLocked), ErrorType.Business)));
            }

            return(ServiceResult <TModel> .CreateSuccessResult(Mapper.Map <TModel>(user)));
        }
Example #28
0
        public ServiceResult DeleteOrderDetail(long orderDetailID)
        {
            var order = Repository.Get(x => x.OrderTables.Any(y => y.OrderDetails.Any(z => z.ID == orderDetailID)));

            if (order == null)
            {
                return(ServiceResult.CreateFailResult(new Error(SmsCache.Message.Get(ConstMessageIds.Business_DataNotExist), ErrorType.Business)));
            }

            var orderTable  = order.OrderTables.First(y => y.OrderDetails.Any(z => z.ID == orderDetailID));
            var orderDetail = orderTable.OrderDetails.First(z => z.ID == orderDetailID);

            orderTable.OrderDetails.Remove(orderDetail);

            return(ServiceResult.CreateSuccessResult());
        }
Example #29
0
        public ServiceResult MoveTable(long orderTableID, long tableID)
        {
            var order = Repository.Get(x => x.OrderTables.Select(y => y.ID).Contains(orderTableID));

            if (order == null)
            {
                return(ServiceResult.CreateFailResult(new Error(SmsCache.Message.Get(ConstMessageIds.Business_DataNotExist), ErrorType.Business)));
            }

            order.OrderTables.First(x => x.ID == orderTableID).Table = new Table {
                ID = tableID
            };
            Repository.Save(order);

            return(ServiceResult.CreateSuccessResult());
        }
Example #30
0
        public ServiceResult UpdateProductToOrderTable(long orderDetailID, string columnName, string value)
        {
            var order = Repository.Get(x => x.OrderTables.Any(y => y.OrderDetails.Any(z => z.ID == orderDetailID)));

            if (order == null)
            {
                return(ServiceResult.CreateFailResult(new Error(SmsCache.Message.Get(ConstMessageIds.Business_DataNotExist), ErrorType.Business)));
            }

            var orderTable  = order.OrderTables.First(y => y.OrderDetails.Any(z => z.ID == orderDetailID));
            var orderDetail = orderTable.OrderDetails.First(z => z.ID == orderDetailID);

            if (orderDetail == null)
            {
                return(ServiceResult.CreateFailResult());
            }

            switch (columnName)
            {
            case "qty":
                if (orderDetail.OrderStatus != OrderStatus.KitchenAccepted)
                {
                    orderDetail.Quantity = decimal.Parse(value);
                }
                break;

            case "cmt":
                orderDetail.Comment = value;
                break;

            case "discount":
            {
                orderDetail.Discount        = decimal.Parse(value);
                orderDetail.DiscountCode    = "";
                orderDetail.DiscountType    = DiscountType.Number;
                orderDetail.DiscountComment = "";
                break;
            }

            case "kitchenComment":
                orderDetail.KitchenComment = value;
                break;
            }
            Repository.Save(order);

            return(ServiceResult.CreateSuccessResult());
        }