public IHttpActionResult Get(Guid formTemplateId) { if (formTemplateId == Guid.Empty) { return(BadRequest("form template id is empty")); } var cacheKey = $"{CACHE_KEY}_{formTemplateId}"; var cacheEntry = MemoryCacher.GetValue(cacheKey); if (cacheEntry == null) { var surveyProvider = new SurveyProvider(CurrentOrgUser, UnitOfWork, onlyPublished: false); var metricGroups = surveyProvider.GetFormTemplate(formTemplateId) .MetricGroups .Select(m => Mapper.Map <MetricGroupDTO>(m)) .ToList(); MemoryCacher.Add(cacheKey, metricGroups, DateTimeOffset.UtcNow.AddMinutes(1)); return(Ok(metricGroups)); } else { var result = (List <MetricGroupDTO>)cacheEntry; return(new CachedResult <List <MetricGroupDTO> >(result, TimeSpan.FromMinutes(1), this)); } }
public ExcursionExtendedDescriptionList ExtendedDescription([FromUri] ExtendedDescriptionParam param) { if (param == null) { throw new ArgumentNullException("param"); } if (param.Excursions == null) { throw new ArgumentNullExceptionWithCode(0x69, "ex"); } WebPartner partner = UserToolsProvider.GetPartner(param); if (!param.FirstDate.HasValue) { param.fd = new DateTime?(DateTime.Now.Date); } if (!param.LastDate.HasValue) { param.ld = new DateTime?(param.FirstDate.Value.AddDays((double)Settings.ExcursionCheckAvailabilityDays)); } ExcursionExtendedDescriptionList list = new ExcursionExtendedDescriptionList(); List <ExcursionDescription> list2 = ExcursionProvider.GetDescription(param.Language, param.Excursions); foreach (ExcursionDescription description in list2) { ExcursionExtendedDescription item = new ExcursionExtendedDescription(description); if ((description != null) && (description.excursion != null)) { item.categorygroups = ExcursionProvider.BuildDescriptionCategories(description.excursion); item.excursiondates = ExcursionProvider.GetDates(partner.id, description.excursion.id, param.FirstDate.Value, param.LastDate.Value); item.ranking = CatalogDescriptionExcursionRanking.Create(SurveyProvider.GetExcursionRanking(description.excursion.id, param.Language), param.Language); item.surveynotes = ExcursionSurveyNote.Create(SurveyProvider.GetExcursionNotes(description.excursion.id)); } int maxCheckCount = Convert.ToInt32(System.Configuration.ConfigurationManager.AppSettings["max_dates_check_places"]); foreach (ExcursionDate ed in item.excursiondates) { if (ed.isprice) { if (--maxCheckCount < 0) { break; } var price = ExcursionProvider.GetPrice(param.Language, partner.id, description.excursion.id, ed.date, null); if ((price.Count > 0) && (price[0].totalseats >= 0) && (!price[0].freeseats.HasValue)) { ed.isstopsale = true; } } } list.Add(item); } return(list); }
private FormTemplate GetFormTemplate(Guid id) { var surveyProvider = new SurveyProvider(CurrentOrgUser, UnitOfWork, onlyPublished: false); return(surveyProvider .GetAllFormTemplates() .SingleOrDefault(f => f.Id == id)); }
public ActionResult AddRating(int?id) { if (Settings.IsAddRankingEnabled && id.HasValue) { List <ExcursionDescription> description = ExcursionProvider.GetDescription(UrlLanguage.CurrentLanguage, new int[] { id.Value }); if ((description != null) && (description.Count == 1)) { ExcursionInvitation invitation = SurveyProvider.CreateInvitation(id.Value, description[0].excursion.name, UrlLanguage.CurrentLanguage); if (invitation != null) { return(base.RedirectToAction("index", "survey", new { id = invitation.AccessCode })); } } } return(base.RedirectToAction("index")); }
public ActionResult Index(SurveyResultsModel model) { if (model == null) { throw new ArgumentNullException("model"); } if (SurveyProvider.GetInvitationInfo(model.accesscode) == null) { ((dynamic)base.ViewBag).NotFound = true; } else { SurveyProvider.SetSurveyResult(model); ((dynamic)base.ViewBag).Thanks = true; } return(base.View()); }
public CatalogResult Catalog([FromUri] CatalogParam param) { if (param == null) { throw new System.ArgumentNullException("param"); } if (param.dp != null) { param.d = null; } WebPartner partner = UserToolsProvider.GetPartner(param); if (!param.StartPoint.HasValue && param.StartPointAlias != null) { param.sp = new int?(CatalogProvider.GetGeoPointIdByAlias(param.StartPointAlias)); } ExcursionProvider.ExcursionSorting sorting = (!string.IsNullOrEmpty(param.SortOrder)) ? ((ExcursionProvider.ExcursionSorting)System.Enum.Parse(typeof(ExcursionProvider.ExcursionSorting), param.SortOrder)) : ExcursionProvider.ExcursionSorting.name; //получить id экскурсий в регионе //фильтровать по id CatalogResult result = new CatalogResult(); result.excursions = ExcursionProvider.FindExcursions(param.Language, partner.id, param.FirstDate, param.LastDate, param.SearchLimit, param.StartPoint, param.SearchText, param.Categories, param.Departures, (param.Destinations != null && param.Destinations.Length > 0) ? param.Destinations : (param.DestinationState.HasValue ? new int[] { param.DestinationState.Value } : null), param.ExcursionLanguages, param.MinDuration, param.MaxDuration, new ExcursionProvider.ExcursionSorting?(sorting), param.WithoutPrice); System.Collections.Generic.Dictionary <int, ExcursionRank> rankings = SurveyProvider.GetExcursionsRanking(( from m in result.excursions select m.excursion.id).ToList <int>(), param.Language); foreach (CatalogExcursionMinPrice excursion in result.excursions) { ExcursionRank rank = null; if (rankings.TryGetValue(excursion.excursion.id, out rank)) { excursion.ranking = CatalogExcursionRanking.Create(rank, param.Language); } } return(result); }
public IHttpActionResult Get(Guid formTemplateId, Guid id) { if (formTemplateId == Guid.Empty) { return(BadRequest("form template id is empty")); } if (id == Guid.Empty) { return(Ok(Mapper.Map <MetricGroupDTO>(new MetricGroup() { FormTemplateId = formTemplateId }))); } var cacheKey = $"{CACHE_KEY}_{formTemplateId}_{id}"; var cacheEntry = MemoryCacher.GetValue(cacheKey); if (cacheEntry == null) { var surveyProvider = new SurveyProvider(CurrentOrgUser, UnitOfWork, onlyPublished: false); var group = surveyProvider.GetFormTemplate(formTemplateId) .MetricGroups .Where(g => g.Id == id) .Select(g => Mapper.Map <MetricGroupDTO>(g)) .SingleOrDefault(); if (group == null) { return(NotFound()); } MemoryCacher.Add(cacheKey, group, DateTimeOffset.UtcNow.AddMinutes(1)); return(Ok(group)); } else { var result = (MetricGroupDTO)cacheEntry; return(new CachedResult <MetricGroupDTO>(result, TimeSpan.FromMinutes(1), this)); } }
public ActionResult Index(string id) { if (string.IsNullOrWhiteSpace(id)) { ((dynamic)base.ViewBag).NotFound = true; } InvitationInfo invitationInfo = SurveyProvider.GetInvitationInfo(id); if (invitationInfo == null) { ((dynamic)base.ViewBag).NotFound = true; } else { ((dynamic)base.ViewBag).Invitation = invitationInfo; if (invitationInfo.CanSurvey) { ((dynamic)base.ViewBag).Questionnaire = SurveyProvider.GetQuestionnaire(invitationInfo.ObjectType, invitationInfo.Language); } } return(base.View()); }
public IHttpActionResult Delete(Guid formTemplateId, Guid id) { if (formTemplateId == Guid.Empty) { return(BadRequest("form template id is empty")); } if (id == Guid.Empty) { return(BadRequest("metric group id is empty")); } var surveyProvider = new SurveyProvider(CurrentOrgUser, UnitOfWork, false); var group = surveyProvider.GetFormTemplate(formTemplateId) .MetricGroups .Where(g => g.Id == id) .SingleOrDefault(); if (group == null) { return(NotFound()); } try { UnitOfWork.MetricGroupsRepository.Delete(group); UnitOfWork.Save(); MemoryCacher.DeleteStartingWith(CACHE_KEY); return(Ok()); } catch (Exception ex) { return(InternalServerError(ex)); } }
public ExcursionExtendedDescriptionList ExtendedDescription([FromUri] ExtendedDescriptionParam param) { if (param == null) { throw new ArgumentNullException("param"); } if (param.Excursions == null) { throw new ArgumentNullExceptionWithCode(0x69, "ex"); } WebPartner partner = UserToolsProvider.GetPartner(param); if (!param.FirstDate.HasValue) { param.fd = new DateTime?(DateTime.Now.Date); } if (!param.LastDate.HasValue) { param.ld = new DateTime?(param.FirstDate.Value.AddDays((double)Settings.ExcursionCheckAvailabilityDays)); } ExcursionExtendedDescriptionList list = new ExcursionExtendedDescriptionList(); List <ExcursionDescription> list2 = ExcursionProvider.GetDescription(param.Language, param.Excursions); foreach (ExcursionDescription description in list2) { ExcursionExtendedDescription item = new ExcursionExtendedDescription(description); if ((description != null) && (description.excursion != null)) { item.categorygroups = ExcursionProvider.BuildDescriptionCategories(description.excursion); item.excursiondates = ExcursionProvider.GetDates(partner.id, description.excursion.id, param.FirstDate.Value, param.LastDate.Value); item.ranking = CatalogDescriptionExcursionRanking.Create(SurveyProvider.GetExcursionRanking(description.excursion.id, param.Language), param.Language); item.surveynotes = ExcursionSurveyNote.Create(SurveyProvider.GetExcursionNotes(description.excursion.id)); } list.Add(item); } return(list); }