public ActionResult <List <AdvertismentResult> > GetAdvertismentByUserAndCategory(string userId, string categoryId, string expression = null, DateTime?startDate = null, DateTime?endDate = null) { List <Advertisment> advertisments = _advertismentService .GetAdvertismentsByUserCategoryDateRange(userId, categoryId, expression, startDate, endDate) .ToList(); return(AdvertHelper.TranslateToResponseObject(advertisments)); }
/// <summary> /// Performs advertising (in a background worker). /// </summary> /// <param name="sender"></param> /// <param name="args"></param> private void Advertising_DoWork(object sender, DoWorkEventArgs args) { var worker = (sender as BackgroundWorker); try { this.CurrentAdvert = null; this.CurrentAdvertIndex = int.MaxValue; // Initialize advertising AdvertHelper.Init(); // Shuffle adverts AdvertHelper.ShuffleAdverts(); while (true) { if (this.IsMainWindowClosing || AdvertHelper.AvailablesAdverts.Count == 0) { break; } // Get current advert index if (this.CurrentAdvertIndex >= (AdvertHelper.AvailablesAdverts.Count - 1)) { this.CurrentAdvertIndex = 0; } else { this.CurrentAdvertIndex += 1; } // Get current advert this.CurrentAdvert = AdvertHelper.AvailablesAdverts[this.CurrentAdvertIndex]; // Report progress to show current advert worker.ReportProgress(0); // Sleep til new advert Thread.Sleep(TimeSpan.FromSeconds(MainWindow.ADVERT_SECONDS)); } } catch (Exception ex) { worker.ReportProgress(100, ex); } }
public ActionResult GetAdvertisments(AdvertismentSearchModel searchModel) { try { List <Advertisment> advertisments = new List <Advertisment>(); ArgumentsValidator.Validate(nameof(searchModel), searchModel); // do not validate as this is optional //ArgumentsValidator.Validate(nameof(searchModel.UserId), searchModel.UserId); if (!searchModel.CategoryId.HasValue) { advertisments = _advertismentService.GetAdvertisments(searchModel.Expression, searchModel.UserId) .ToList(); } if (searchModel.CategoryId.HasValue) { advertisments = _advertismentService .GetAdvertismentsByUserCategoryDateRange(searchModel.UserId, searchModel.CategoryId.Value.ToString(), searchModel.Expression, searchModel.StartDate, searchModel.EndDate) .ToList(); } return(StatusCode(200, AdvertHelper.TranslateToResponseObject(advertisments))); } catch (ArgumentException ex) { Log.Error(ex, AdvertismentConstants.ARGUMENT_NULL); return(StatusCode(400)); } catch (DbUpdateException) { return(new StatusCodeResult(507)); } catch (Exception) { return(new StatusCodeResult(500)); } }