public DReturnObject HandleException(DReturnObject bdr, string customMessage)
 {
     ///**** Remember to remove this in production, end users should never see system errors.
     bdr.message = customMessage;
     bdr.status  = status.error.ToString();
     return(bdr);
 }
示例#2
0
        public async Task <DReturnObject> UpdateSubscription(DUpdateSubscriptiontRequest data, CancellationToken cancellationToken)
        {
            DReturnObject ro = new DReturnObject();

            var validationResult = await _updatevalidator.ValidateAsync(data, cancellationToken, ruleSet : RuleSets.ExecuteUpdateRules);

            if (!validationResult.IsValid)
            {
                ro.status  = status.error.ToString();
                ro.message = validationResult.ToString();
                return(ro);
            }

            List <object> parameterList = new List <object>();

            parameterList.Add(data.id);
            parameterList.Add(data.state);

            _unitOfWork.ExecuteSqlCommand($"update [dbo].[SubscriptionData] set " +
                                          $"[state] = @P1 " +
                                          $"WHERE id = @P0", parameterList.ToArray());

            ro.status = status.success.ToString();

            return(ro);
        }
示例#3
0
        public async Task <DReturnObject> NewSubscription(DNewSubscriptiontRequest data, CancellationToken cancellationToken)
        {
            DReturnObject ro = new DReturnObject();

            var validationResult = await _validator.ValidateAsync(data, cancellationToken, ruleSet : RuleSets.ExecuteUpdateRules);

            if (!validationResult.IsValid)
            {
                ro.status  = status.invalidinput.ToString();
                ro.message = validationResult.ToString();
                return(ro);
            }

            List <object> parameterList = new List <object>();

            parameterList.Add(data.prodid);
            parameterList.Add(data.email);
            parameterList.Add(data.name);
            parameterList.Add(data.lasename);
            parameterList.Add(0);

            int dd = _unitOfWork.ExecuteSqlCommand("exec SP_NewSubscription @prodid=@P0, @email=@P1, @name=@P2, @lastname=@P3, @newid=@P4", parameterList.ToArray());

            ro.status = status.success.ToString();

            return(ro);
        }
示例#4
0
        public async Task <DReturnObject> ListAll(string useremail, CancellationToken cancellationToken)
        {
            DReturnObject bdr = new DReturnObject();

            try
            {
                var      busRepo = _unitOfWork.GetRepository <UserData>();
                UserData ud      = (await busRepo.GetFirstOrDefaultAsync(
                                        predicate: a => a.email.ToLower().Equals(useremail),
                                        disableTracking: false));

                if (ud == null)
                {
                    bdr.status  = status.success.ToString();
                    bdr.message = "No subscription data for this user: "******"select s.id, s.price, s.state, pd.imagePath, pd.title, pd.description from SubscriptionData s inner join ProductData pd on pd.id = s.prodid where s.usrid={0} and s.state=1", ud.id);

                bdr.status = status.success.ToString();
            }
            catch (Exception e)
            {
                bdr = _exceptionHandler.HandleException(bdr, e);
            }
            return(bdr);
        }
 public DReturnObject HandleException(DReturnObject bdr, Exception exception)
 {
     ///**** Remember to remove this in production, end users should never see system errors.
     bdr.message = exception.Message;
     bdr.status  = status.error.ToString();
     LogException(exception, "HandleException");
     return(bdr);
 }
        public async Task <DReturnObject> ListAll()
        {
            DReturnObject bdr = new DReturnObject();

            try
            {
                var busRepo = _unitOfWork.GetRepository <DProductData>();
                bdr.data   = busRepo.FromSql("select * from ProductData");
                bdr.status = status.success.ToString();
            }
            catch (Exception e)
            {
                bdr = _exceptionHandler.HandleException(bdr, e);
            }
            return(bdr);
        }
        public async Task <DReturnObject> UpdateProduct(DUpdateProductDataRequest updateproduct, CancellationToken cancellationToken)
        {
            DReturnObject ro = new DReturnObject();

            var prodRepo = await _unitOfWork.GetRepository <DProductData>().GetFirstOrDefaultAsync(
                predicate: a => a.id.Equals(updateproduct.id));

            if (prodRepo is null)
            {
                ro.status  = status.error.ToString();
                ro.message = $"Product with id: {updateproduct.id.ToString()} was not found.";
                return(ro);
            }

            var config = new MapperConfiguration(cfg => {
                cfg.CreateMap <DUpdateProductDataRequest, DProductData>();
            });
            var mapper = new Mapper(config);

            mapper.Map(updateproduct, prodRepo);

            var validationResult = await _updatevalidator.ValidateAsync(updateproduct, cancellationToken, ruleSet : RuleSets.ExecuteUpdateRules);

            if (!validationResult.IsValid)
            {
                ro.status  = status.error.ToString();
                ro.message = validationResult.ToString();
                // return ro;
            }
            else
            {
                var repo = _unitOfWork.GetRepository <DProductData>();
                repo.Update(prodRepo);
                await _unitOfWork.SaveChangesAsync();

                ro.data   = updateproduct;
                ro.status = status.success.ToString();
            }

            return(ro);
        }
        public async Task <DReturnObject> NewProduct(DNewProductRequest newproduct, CancellationToken cancellationToken)
        {
            DReturnObject ro = new DReturnObject();

            var validationResult = await _validator.ValidateAsync(newproduct, cancellationToken, ruleSet : RuleSets.ExecuteUpdateRules);

            if (!validationResult.IsValid)
            {
                ro.status  = status.invalidinput.ToString();
                ro.message = validationResult.ToString();
                return(ro);
            }

            var          proRepo = _unitOfWork.GetRepository <DProductData>();
            DProductData test    = (await proRepo.GetFirstOrDefaultAsync(
                                        predicate: a => a.title.ToLower().Equals(newproduct.title.ToLower()),
                                        disableTracking: false));

            if (test != null)
            {
                ro.status  = status.error.ToString();
                ro.message = $"The item: {newproduct.title} already exists with id {test.id}";
                return(ro);
            }

            var itemToAdd = new DProductData
            {
                title       = newproduct.title,
                description = newproduct.description,
                imagePath   = newproduct.imagePath,
                price       = newproduct.price
            };

            _unitOfWork.GetRepository <DProductData>().Insert(itemToAdd);
            await _unitOfWork.SaveChangesAsync();

            ro.data   = itemToAdd.id;
            ro.status = status.success.ToString();

            return(ro);
        }