示例#1
0
        protected override void FindAbstract(PointFindModel parameters)
        {
            var output    = new LogicResult <PointViewModel>();
            var predicate = PredicateBuilder.True <Point>();

            if (parameters == null)
            {
                parameters = new PointFindModel();
            }
            if (parameters.Id != null)
            {
                predicate = predicate.And(r => r.Id == parameters.Id);
            }
            if (parameters.TeamId != null)
            {
                predicate = predicate.And(r => r.TeamId == parameters.TeamId);
            }
            if (parameters.GamePiont != null)
            {
                predicate = predicate.And(r => r.GamePiont == parameters.GamePiont);
            }
            if (parameters.GameId != null)
            {
                predicate = predicate.And(r => r.GameId == parameters.GameId);
            }
            if (parameters.Description != null)
            {
                predicate = predicate.And(r => r.Description.Contains(parameters.Description));
            }

            var data = this.Uow.GetRepository <Point>().Find(predicate);

            output.Output = Mapper.Map <Point, PointViewModel>(data);
            Result        = output;
        }
        public LogicResult <MemoryStream> GenerateInvoicePdf(ProductInvoiceModel invoice)
        {
            try
            {
                MemoryStream workStream = new MemoryStream();

                Document doc = new Document();
                doc.SetMargins(0f, 0f, 0f, 0f);
                //Create PDF Table with 5 columns
                PdfPTable tableLayout = new PdfPTable(8);
                doc.SetMargins(0f, 0f, 0f, 0f);
                //Create PDF Table

                PdfWriter.GetInstance(doc, workStream).CloseStream = false;
                doc.Open();

                //Add Content to PDF
                doc.Add(AddContentToPDF(tableLayout, invoice));

                // Closing the document
                doc.Close();

                byte[] byteInfo = workStream.ToArray();
                workStream.Write(byteInfo, 0, byteInfo.Length);
                workStream.Position = 0;
                return(LogicResult <MemoryStream> .Succeed(workStream));
            }
            catch
            {
                return(LogicResult <MemoryStream> .Failure(Validation.UnSuccessfullOperation));
            }
        }
        public async Task <LogicResult> UpdateUserProfile(UserViewModelApi viewModel)
        {
            LogicResult logicResult = new LogicResult();
            AppUser     user        = await FindByIdAsync(viewModel.Id.ToString());

            if (user != null)
            {
                logicResult.MessageType = MessageType.Success;
                logicResult.Message.Add(NotificationMessages.OperationSuccess);
                user.FirstName   = viewModel.FirstName;
                user.LastName    = viewModel.LastName;
                user.UserName    = viewModel.UserName;
                user.PhoneNumber = viewModel.PhoneNumber;
                user.BirthDate   = !string.IsNullOrWhiteSpace(viewModel.PersianBirthDate) ? viewModel.PersianBirthDate.ConvertPersianToGeorgian() : user.BirthDate;
                user.Gender      = viewModel.Gender;
                user.Email       = viewModel.Email;
                await UpdateAsync(user);
            }
            else
            {
                logicResult.MessageType = MessageType.Error;
                logicResult.Message.Add(NotificationMessages.UserNotFound);
            }

            return(logicResult);
        }
示例#4
0
        protected override void FindAbstract(TeamFindModel parameters)
        {
            var output    = new LogicResult <TeamViewModel>();
            var predicate = PredicateBuilder.True <Team>();

            if (parameters == null)
            {
                parameters = new TeamFindModel();
            }
            if (parameters.Id != null)
            {
                predicate = predicate.And(r => r.Id == parameters.Id);
            }
            if (parameters.Name != null)
            {
                predicate = predicate.And(r => r.Name.Contains(parameters.Name));
            }
            if (parameters.Description != null)
            {
                predicate = predicate.And(r => r.Description.Contains(parameters.Description));
            }

            var data = this.Uow.GetRepository <Team>().Find(predicate);

            output.Output = Mapper.Map <Team, TeamViewModel>(data);
            Result        = output;
        }
 public LogicResult <ProductInvoiceModel> GetInvoiceForDownload(Guid productId, Guid userId)
 {
     try
     {
         var invoice = (from userToProduct in _userToProductQueryService.GetAll()
                        join product in _productQueryService.GetAll() on userToProduct.ProductId equals product.Id
                        join productType in _productTypeServiceFacade.Data on product.TypeId equals productType.Id
                        where userToProduct.UserId == userId && userToProduct.ProductId == productId
                        select new ProductInvoiceModel
         {
             Day = userToProduct.Day,
             UserId = userToProduct.UserId,
             Point = userToProduct.Point,
             Id = userToProduct.ProductId,
             PaymentDetail = SerializerHelper.DeserializeObject <PaymentDetail>(userToProduct.PaymentDetail),
             Name = product.Name,
             Type = productType.Type
         }).FirstOrDefault();
         return(LogicResult <ProductInvoiceModel> .Succeed(invoice));
     }
     catch
     {
         return(LogicResult <ProductInvoiceModel> .Failure(Validation.UnSuccessfullOperation));
     }
 }
示例#6
0
        public LogicResult <int> AddToCart(ProductCartModel model)
        {
            if (Store.CartProducts.Any(m => m.Id == model.Id && m.UserId == model.UserId))
            {
                return(LogicResult <int> .Failure(Validation.PrductExistInCart));
            }
            if (model.Day <= 0)
            {
                return(LogicResult <int> .Failure(Validation.MustBeHigherThanZero));
            }
            var priceDetail = new PriceDetail
            {
                Day  = model.Day,
                Type = model.Type.ToEnum <ProductType>()
            };
            var paymentDetailResult = _priceCalculationService.CalculatePrice(priceDetail);

            if (paymentDetailResult.IsSucceed)
            {
                model.PaymentDetail = paymentDetailResult.Data;
                Store.CartProducts.Add(model);
                return(LogicResult <int> .Succeed(DataCount));
            }
            else
            {
                return(LogicResult <int> .Failure(Validation.UnSuccessfullOperation));
            }
        }
示例#7
0
        protected override void FindAbstract(TeamRequestFindModel parameters)
        {
            var output    = new LogicResult <TeamRequestViewModel>();
            var predicate = PredicateBuilder.True <TeamRequest>();

            if (parameters == null)
            {
                parameters = new TeamRequestFindModel();
            }
            if (parameters.Id != null)
            {
                predicate = predicate.And(r => r.Id == parameters.Id);
            }
            if (parameters.UserId != null)
            {
                predicate = predicate.And(r => r.UserId == parameters.UserId);
            }
            if (parameters.TeamId != null)
            {
                predicate = predicate.And(r => r.TeamId == parameters.TeamId);
            }

            var data = this.Uow.GetRepository <TeamRequest>().Find(predicate);

            output.Output = Mapper.Map <TeamRequest, TeamRequestViewModel>(data);
            Result        = output;
        }
示例#8
0
        protected override void AddAbstract(UserCreateModel entity)
        {
            var    output  = new LogicResult <UserViewModel>();
            int    seconds = DateTime.Now.Second;
            Random rnd     = new Random(seconds);
            string input   = rnd.Next().ToString();
            var    data    = new User
            {
                Email             = entity.Email,
                MobileNumber      = entity.MobileNumber,
                AccessFailedCount = entity.AccessFailedCount,
                Salt          = CHashing.RandomSalt(input),
                LastLoginDate = DateTime.Now,
                UserName      = entity.UserName,
                FirstName     = entity.FirstName,
                LastName      = entity.LastName
            };

            data.Password = CHashing.Hash(entity.Password, data.Salt);
            data.UserClaims.Add(new UserClaim
            {
                ClaimType  = "role",
                ClaimValue = "user"
            });
            this.Uow.GetRepository <User>().Add(data, OtherEntities);
            this.Uow.SaveChanges();
            output.Output = Mapper.Map <User, UserViewModel>(data);
            Result        = output;
        }
示例#9
0
        protected override void FindAbstract(UserClaimFindModel parameters)
        {
            var output    = new LogicResult <UserClaimViewModel>();
            var predicate = PredicateBuilder.True <UserClaim>();

            if (parameters == null)
            {
                parameters = new UserClaimFindModel();
            }
            if (parameters.Id != null)
            {
                predicate = predicate.And(r => r.Id == parameters.Id);
            }
            if (parameters.UserId != null)
            {
                predicate = predicate.And(r => r.UserId == parameters.UserId);
            }
            if (parameters.ClaimType != null)
            {
                predicate = predicate.And(r => r.ClaimType.Contains(parameters.ClaimType));
            }
            if (parameters.ClaimValue != null)
            {
                predicate = predicate.And(r => r.ClaimValue.Contains(parameters.ClaimValue));
            }

            var data = this.Uow.GetRepository <UserClaim>().Find(predicate);

            output.Output = Mapper.Map <UserClaim, UserClaimViewModel>(data);
            Result        = output;
        }
示例#10
0
        public async Task <LogicResult> CreateAsync(TeamViewModel viewModel)
        {
            LogicResult logicResult = new LogicResult();

            if (IsExist(viewModel))
            {
                logicResult.MessageType = MessageType.Error;
                logicResult.Message.Add(NotificationMessages.DuplicateRecord);
            }
            else
            {
                Team team = new Team
                {
                    Name        = viewModel.Name,
                    Description = viewModel.Description,
                };
                _teamService.Add(team);
                int rowEffect = await _unitOfWork.SaveChangesAsync();

                if (rowEffect == 0)
                {
                    logicResult.MessageType = MessageType.Error;
                    logicResult.Message.Add(NotificationMessages.InvalidRecord);
                }
                else
                {
                    logicResult.MessageType = MessageType.Success;
                    logicResult.Message.Add(NotificationMessages.CreateSuccess);
                }
            }

            return(logicResult);
        }
示例#11
0
        public async Task <LogicResult> EditAsync(TeamViewModel viewModel)
        {
            LogicResult logicResult = new LogicResult();

            if (IsExist(viewModel))
            {
                logicResult.MessageType = MessageType.Error;
                logicResult.Message.Add(NotificationMessages.DuplicateRecord);
            }
            else
            {
                Team team = await _teamService.FirstOrDefaultAsync(a => a.TeamId == viewModel.TeamId);

                team.Name        = viewModel.Name;
                team.Description = viewModel.Description;
                _teamService.Update(team);
                int rowEffect = await _unitOfWork.SaveChangesAsync();

                if (rowEffect == 0)
                {
                    logicResult.MessageType = MessageType.Error;
                    logicResult.Message.Add(NotificationMessages.InvalidRecord);
                }
                else
                {
                    logicResult.MessageType = MessageType.Success;
                    logicResult.Message.Add(NotificationMessages.EditSuccess);
                }
            }

            return(logicResult);
        }
示例#12
0
        public async Task <LogicResult> DeleteAsync(TeamViewModel viewModel)
        {
            LogicResult logicResult = new LogicResult();
            Team        team        = await _teamService.FirstOrDefaultAsync(a => a.TeamId == viewModel.TeamId);

            if (team != null)
            {
                _teamService.Remove(team);
                int rowEffect = await _unitOfWork.SaveChangesAsync();

                if (rowEffect == 0)
                {
                    logicResult.MessageType = MessageType.Error;
                    logicResult.Message.Add(NotificationMessages.InvalidRecord);
                }
                else
                {
                    logicResult.MessageType = MessageType.Success;
                    logicResult.Message.Add(NotificationMessages.DeleteSuccess);
                }
            }
            else
            {
                logicResult.MessageType = MessageType.Error;
                logicResult.Message.Add(NotificationMessages.RecordNotFounded);
            }

            return(logicResult);
        }
示例#13
0
 protected BaseLogic()
 {
     Uow       = new UnitOfWork();
     Result    = new LogicResult <TView>();
     ResultAll = new LogicResult <ICollection <TView> >();
     //GeneralUserId=HttpContext.Current != null ? HttpContext.Current.GetOwinContext().Authentication.User.GetUserId() : 1041;
 }
示例#14
0
        private void btnXoa_Click(object sender, EventArgs e)
        {
            try
            {
                if (listKhachHang.SelectedRows.Count == 1)
                {
                    int          rowSelected = listKhachHang.SelectedRows[0].Index;
                    String       selectedId  = listKhachHang.Rows[rowSelected].Cells["ID"].Value.ToString();
                    DialogResult result      = MessageBox.Show("Bạn có chắc muốn xóa?", "Confirmation", MessageBoxButtons.YesNoCancel);
                    if (result == DialogResult.Yes)
                    {
                        FormSearchCustomerObj obj = new FormSearchCustomerObj();
                        obj.idKhachHang = selectedId;
                        LogicResult logicRS = new CustomerLogic().deleteCustomerLogic(obj);

                        FormSearchCustomerObj frmObj       = tranfersInput();
                        CustomerLogic         logic        = new CustomerLogic();
                        LogicResult           searchResult = logic.searchCustomerLogic(frmObj);
                        outputObj = (FormSearchCustomerObj)searchResult.obj;
                        this.listKhachHang.DataSource = outputObj.listKhachHangs;
                        MessageBox.Show("SUCCESS: " + logicRS.msg);
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("ERROR: " + ex.Message);
            }
        }
示例#15
0
 public LogicResult Save(ProductInvoiceModel model)
 {
     try
     {
         var dto = new UserToProductDTO
         {
             Amount        = model.PaymentDetail.TotalPrice,
             UserId        = CurrentUser.Id,
             PaymentDetail = SerializerHelper.Serialize(model.PaymentDetail),
             Day           = model.Day,
             ProductId     = model.Id,
             Point         = model.Point,
         };
         var result = _userToProductService.Save(dto);
         if (result.IsSucceed)
         {
             var product = Store.CartProducts.FirstOrDefault(m => m.Id == model.Id);
             Store.CartProducts.Remove(product);
             return(LogicResult.Succeed());
         }
         else
         {
             return(LogicResult.Failure(Validation.UnSuccessfullOperation));
         }
     }
     catch
     {
         return(LogicResult <int> .Failure(Validation.UnSuccessfullOperation));
     }
 }
示例#16
0
        protected override void AddAbstract(GameCreateModel entity)
        {
            var output = new LogicResult <GameViewModel>();
            var data   = Mapper.Map <GameCreateModel, Game>(entity);

            this.Uow.GetRepository <Game>().Add(data);
            this.Uow.SaveChanges();
            if (data.GuestTeamGoals != null && data.GuestTeamGoals != null)
            {
                var points = new List <Point> {
                    new Point
                    {
                        TeamId    = data.HostTeamId,
                        GameId    = data.Id,
                        GamePiont = data.HostTeamGoals == data.GuestTeamGoals ? (int)GameResultEnum.Draw
                : (data.HostTeamGoals > data.GuestTeamGoals) ? (int)GameResultEnum.Win
                : (int)GameResultEnum.Lose
                    },
                    new Point
                    {
                        TeamId    = data.GuestTeamId,
                        GameId    = data.Id,
                        GamePiont = data.HostTeamGoals == data.GuestTeamGoals ? (int)GameResultEnum.Draw
                           : (data.HostTeamGoals < data.GuestTeamGoals) ? (int)GameResultEnum.Win
                           : (int)GameResultEnum.Lose
                    }
                };
                this.Uow.GetRepository <Point>().AddRange(points);
            }
            output.Output = Mapper.Map <Game, GameViewModel>(data);
            Result        = output;
        }
示例#17
0
 public LogicResult <ProductCartModel> GetProductDetailForAddToCart(Guid productId)
 {
     try
     {
         var model = (from product in _productQueryService.GetAll()
                      join productType in _productTypeServiceFacade.Data on product.TypeId equals productType.Id
                      where product.Id == productId
                      select new ProductCartModel {
             Id = product.Id, Name = product.Name, Type = productType.Type, Point = productType.Point, UserId = CurrentUser.Id
         }).FirstOrDefault();
         var priceDetail = new PriceDetail
         {
             Type = model.Type.ToEnum <ProductType>()
         };
         var paymentDetailResult = _priceCalculationService.CalculatePrice(priceDetail);
         if (paymentDetailResult.IsSucceed)
         {
             model.PaymentDetail = paymentDetailResult.Data;
             return(LogicResult <ProductCartModel> .Succeed(model));
         }
         else
         {
             return(LogicResult <ProductCartModel> .Failure(Validation.UnSuccessfullOperation));
         }
     }
     catch
     {
         return(LogicResult <ProductCartModel> .Failure(Validation.UnSuccessfullOperation));
     }
 }
示例#18
0
        protected override void RemoveAbstract(TeamDeleteModel entity)
        {
            var output = new LogicResult <TeamViewModel>();
            var data   = Uow.GetRepository <Team>().GetById(entity.Id);

            if (data != null)
            {
                while (data.Users.Count() > 0)
                {
                    data.Users.FirstOrDefault().TeamId = null;
                    Uow.GetRepository <User>().Update(data.Users.FirstOrDefault());
                }

                Uow.GetRepository <Team>().Remove(data);
            }
            else
            {
                output.ErrorList.Add(new Error
                {
                    Code = "400",
                    Text = "id is incorrect",
                    Type = Utils.Enums.OperationResultCode.Information
                });
            }
            Result = output;
        }
示例#19
0
        protected override void FindAllAbstract(TeamRequestFindModel parameters)
        {
            var output    = new LogicResult <ICollection <TeamRequestViewModel> >();
            var predicate = PredicateBuilder.True <TeamRequest>();

            if (parameters == null)
            {
                parameters = new TeamRequestFindModel();
            }
            if (parameters.Id != null)
            {
                predicate = predicate.And(r => r.Id == parameters.Id);
            }
            if (parameters.UserId != null)
            {
                predicate = predicate.And(r => r.UserId == parameters.UserId);
            }
            if (parameters.TeamId != null)
            {
                predicate = predicate.And(r => r.TeamId == parameters.TeamId);
            }

            var data = this.Uow.GetRepository <TeamRequest>().FindAll(predicate);

            if (parameters.PageSize > 0 && parameters.PageNumber > 0)
            {
                data = data.OrderBy(x => x.Id).Skip((int)((parameters.PageNumber - 1) * parameters.PageSize)).Take((int)parameters.PageSize);
            }
            output.Output = Mapper.Map <ICollection <TeamRequest>, ICollection <TeamRequestViewModel> >(data.ToList()).OrderByDescending(x => x.Id).ToList();
            ResultAll     = output;
            this.Uow.Dispose();
        }
示例#20
0
        protected override void GetByIdAbstract(int id)
        {
            var output = new LogicResult <TeamRequestViewModel>();
            var data   = this.Uow.GetRepository <TeamRequest>().GetById(id);

            output.Output = Mapper.Map <TeamRequest, TeamRequestViewModel>(data);
            Result        = output;
        }
示例#21
0
 protected ActionResult AjaxFailureResult(LogicResult response, Action action = null)
 {
     action?.Invoke();
     Response.TrySkipIisCustomErrors = true;
     Response.StatusCode             = (int)HttpStatusCode.BadRequest;
     Response.StatusDescription      = response.FailureResult.FirstOrDefault();
     return(Json(response.FailureResult, JsonRequestBehavior.AllowGet));
 }
示例#22
0
        protected override void GetByIdAbstract(int id)
        {
            var output = new LogicResult <UserViewModel>();
            var data   = this.Uow.GetRepository <User>().GetById(id, OtherEntities);

            output.Output = Mapper.Map <User, UserViewModel>(data);
            Result        = output;
        }
示例#23
0
        protected override void AddRangeAbstract(List <TeamRequestCreateModel> entities)
        {
            var output        = new LogicResult <ICollection <TeamRequestViewModel> >();
            var data          = Mapper.Map <List <TeamRequestCreateModel>, List <TeamRequest> >(entities);
            var addedEntities = this.Uow.GetRepository <TeamRequest>().AddRange(data);

            output.Output = Mapper.Map <List <TeamRequest>, List <TeamRequestViewModel> >(addedEntities);
            ResultAll     = output;
        }
示例#24
0
        protected override void UpdateAbstract(PointUpdateModel entity)
        {
            var output      = new LogicResult <PointViewModel>();
            var curentPoint = this.Uow.GetRepository <Point>().GetById(entity.Id);
            var point       = Mapper.Map(entity, curentPoint);
            var data        = this.Uow.GetRepository <Point>().Update(point);

            output.Output = Mapper.Map <Point, PointViewModel>(data);
            Result        = output;
        }
示例#25
0
        protected override void AddAbstract(UserClaimCreateModel entity)
        {
            var output = new LogicResult <UserClaimViewModel>();
            var data   = Mapper.Map <UserClaimCreateModel, UserClaim>(entity);

            this.Uow.GetRepository <UserClaim>().Add(data);
            this.Uow.SaveChanges();
            output.Output = Mapper.Map <UserClaim, UserClaimViewModel>(data);
            Result        = output;
        }
示例#26
0
        protected override void UpdateAbstract(UserUpdateModel entity)
        {
            var output     = new LogicResult <UserViewModel>();
            var curentUser = this.Uow.GetRepository <User>().GetById(entity.Id);
            var user       = Mapper.Map(entity, curentUser);
            var data       = this.Uow.GetRepository <User>().Update(user);

            output.Output = Mapper.Map <User, UserViewModel>(data);
            Result        = output;
        }
示例#27
0
        protected override void UpdateAbstract(TeamRequestUpdateModel entity)
        {
            var output            = new LogicResult <TeamRequestViewModel>();
            var curentTeamRequest = this.Uow.GetRepository <TeamRequest>().GetById(entity.Id);
            var teamRequest       = Mapper.Map(entity, curentTeamRequest);
            var data = this.Uow.GetRepository <TeamRequest>().Update(teamRequest);

            output.Output = Mapper.Map <TeamRequest, TeamRequestViewModel>(data);
            Result        = output;
        }
示例#28
0
        protected override void AddAbstract(TeamRequestCreateModel entity)
        {
            var output = new LogicResult <TeamRequestViewModel>();
            var data   = Mapper.Map <TeamRequestCreateModel, TeamRequest>(entity);

            this.Uow.GetRepository <TeamRequest>().Add(data);
            this.Uow.SaveChanges();
            output.Output = Mapper.Map <TeamRequest, TeamRequestViewModel>(data);
            Result        = output;
        }
示例#29
0
        protected override void FindAbstract(UserFindModel parameters)
        {
            var output    = new LogicResult <UserViewModel>();
            var predicate = PredicateBuilder.True <User>();

            if (parameters == null)
            {
                parameters = new UserFindModel();
            }
            if (parameters.TeamId != null)
            {
                predicate = predicate.And(r => r.TeamId == parameters.TeamId);
            }
            if (parameters.Id != null)
            {
                predicate = predicate.And(r => r.Id == parameters.Id);
            }
            if (parameters.LastLoginDate != null)
            {
                predicate = predicate.And(r => r.LastLoginDate == parameters.LastLoginDate);
            }
            if (parameters.FirstName != null)
            {
                predicate = predicate.And(r => r.FirstName == parameters.FirstName);
            }
            if (parameters.LastName != null)
            {
                predicate = predicate.And(r => r.LastName == parameters.LastName);
            }
            if (parameters.Email != null)
            {
                predicate = predicate.And(r => r.Email == parameters.Email);
            }
            if (parameters.PhoneNumber != null)
            {
                predicate = predicate.And(r => r.PhoneNumber == parameters.PhoneNumber);
            }
            if (parameters.AccessFailedCount != null)
            {
                predicate = predicate.And(r => r.AccessFailedCount == parameters.AccessFailedCount);
            }
            if (parameters.UserName != null)
            {
                predicate = predicate.And(r => r.UserName == parameters.UserName);
            }
            if (parameters.MobileNumber != null)
            {
                predicate = predicate.And(r => r.MobileNumber == parameters.MobileNumber);
            }

            var data = this.Uow.GetRepository <User>().Find(predicate, OtherEntities);

            output.Output = Mapper.Map <User, UserViewModel>(data);
            Result        = output;
        }
示例#30
0
 public LogicResult <IEnumerable <ProductCartModel> > GetProducts()
 {
     try
     {
         return(LogicResult <IEnumerable <ProductCartModel> > .Succeed(Store.CartProducts.Where(m => m.UserId == CurrentUser.Id)));
     }
     catch
     {
         return(LogicResult <IEnumerable <ProductCartModel> > .Failure(Validation.UnSuccessfullOperation));
     }
 }