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); }
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); }
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); }
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); }