コード例 #1
0
        public ActionResult ListOfEvents()
        {
            @ViewData["headerName"] = "Collage Events";
            List <EventDetailBusinessModel> allEvents    = new List <EventDetailBusinessModel>();
            List <EventDetailModel>         listofEvents = new List <EventDetailModel>();

            allEvents = applicationLEvelBusinessOperation.GetAllEvents();

            foreach (EventDetailBusinessModel item in allEvents)
            {
                EventDetailModel eventItem = new EventDetailModel
                {
                    EventName        = item.EventName,
                    EventDate        = item.EventDate,
                    EventDescription = item.EventDescription,
                    EventDetailID    = item.EventDetailID,
                    EventType        = item.EventType,
                    CollageID        = item.CollageID
                };
                listofEvents.Add(eventItem);
            }

            //ModelState.AddModelError("EventName", "This is my server-side error.");
            return(View(listofEvents));
        }
コード例 #2
0
        public async Task <IActionResult> EventDetailAsync(int eventId)
        {
            EventDetailModel eventDetailModel = (from e in _context.Events
                                                 join u in _context.Users on e.HostId equals u.Id
                                                 where e.EventId == eventId
                                                 select new EventDetailModel
            {
                EventId = e.EventId,
                EventTitle = e.EventTitle,
                Location = e.Location,
                Date = e.Date,
                StartTime = e.StartTime,
                EndTime = e.EndTime,
                Description = e.Description,
                Image = e.Image,
                IsAdultOnly = e.IsAdultOnly == 1 ? 1 : 0,
                EventType = e.EventType == 1 ? 1 : 0,
                Host = u.UserName,
                HostId = e.HostId
            }).FirstOrDefault();


            if (eventDetailModel == null) // event does not exist
            {
                return(View("Error"));
            }

            else
            {
                eventDetailModel.DayOfWeek = Convert.ToDateTime(eventDetailModel.Date).DayOfWeek.ToString();
                try
                {
                    int amOrPm = Convert.ToInt32(eventDetailModel.StartTime[..2]);
コード例 #3
0
        public async Task <List <KeyValuePair <string, string> > > Validate(EventDetailModel model, CampaignSummaryModel parentCampaign)
        {
            var result = new List <KeyValuePair <string, string> >();

            if (model.EndDateTime < model.StartDateTime)
            {
                result.Add(new KeyValuePair <string, string>(nameof(model.EndDateTime), "End date cannot be earlier than the start date"));
            }

            if (model.StartDateTime < parentCampaign.StartDate)
            {
                result.Add(new KeyValuePair <string, string>(nameof(model.StartDateTime), "Start date cannot be earlier than the campaign start date " + parentCampaign.StartDate.ToString("d")));
            }

            if (model.EndDateTime > parentCampaign.EndDate)
            {
                result.Add(new KeyValuePair <string, string>(nameof(model.EndDateTime), "End date cannot be later than the campaign end date " + parentCampaign.EndDate.ToString("d")));
            }

            var postalCodeValidation = new LocationEditModelValidator(_mediator);
            var postalCodeErrors     = await postalCodeValidation.Validate(model.Location);

            postalCodeErrors.ToList().ForEach(e => result.Add(new KeyValuePair <string, string>(e.Key, e.Value)));
            return(result);
        }
コード例 #4
0
ファイル: EventController.cs プロジェクト: xiaohangPig/Daily
        // GET: @event /Details/5
        public IActionResult Details(int id)
        {
            if (id == 0)
            {
                return(NotFound());
            }

            var @event = _service.Get(id);
            //创建一个新的模型类
            var models = new EventDetailModel
            {
                EventId       = @event.EventId,
                Describe      = @event.Describe,
                Duration      = @event.Duration,
                Email         = @event.Email,
                NewPeriod     = @event.NewPeriod,
                NewPeriodTime = @event.NewPeriodTime,
                Period        = @event.Period,
                StartTime     = @event.StartTime,
                Summary       = @event.Summary
            };

            if (@event == null)
            {
                return(NotFound());
            }

            return(View(@event));
        }
コード例 #5
0
        public ActionResult BuyTickets(EventDetailModel model, string imageId)
        {
            var currentCart = CurrentCart.Create(SnuffoSettings.STORE_NAME);
            var tickets     = model.Event.TicketsSale.ToList();

            model.Event.LazyLoadProperties();

            for (int i = 0; i < tickets.Count; i++)
            {
                string dropdownName = string.Concat("TicketType", i);

                int ticketsQuantityToBuy = !Request.Form[dropdownName].IsNullOrEmpty() ? int.Parse(Request.Form[dropdownName]) : 0;
                ViewData[dropdownName] = ticketsQuantityToBuy;

                if (ticketsQuantityToBuy > 0)
                {
                    currentCart.AddTicket(
                        tickets[i].Id,
                        model.Event.DisplayName(),
                        ticketsQuantityToBuy,
                        metaData: imageId);
                }
            }

            return(Redirect($"/{CurrentUser.LanguageCode}/cart/"));
        }
コード例 #6
0
        public bool insertSale()
        {
            string eventIdStr = Request.Form["eventId"];
            string ssi        = Request.Form["ssi"];
            string amount     = Request.Form["amount"];
            string ssiDec     = UseKardoEncryption.getDecipherString(ssi);

            if (ssiDec == "KardoEncryptionError")
            {
                return(false);
            }

            int userId = Convert.ToInt32(UseKardoEncryption.getDecipherString(Session["KardoUserId"].ToString()));
            Dictionary <string, Object> theUser = DefaultModel.getUserFromUserId(userId);
            int  eventId, ssId, amountInt;
            int  kpId = (int)theUser["kardoPassoId"];
            bool isNumeric = int.TryParse(eventIdStr, out eventId);
            bool isNumeric2 = int.TryParse(ssiDec, out ssId);
            bool isNumeric3 = int.TryParse(amount, out amountInt);

            if (isNumeric && isNumeric2 && isNumeric3)
            {
                return(EventDetailModel.insertSale(eventId, ssId, kpId, amountInt, userId));
            }
            return(false);
        }
コード例 #7
0
        public int Create(EventDetailModel eventDetail)
        {
            var res = AutoMapper.MapItem <EventDetailModel, DAL.EventDetail>(eventDetail);

            dbContext.EventDetails.Add(res);

            return(dbContext.SaveChanges());
        }
コード例 #8
0
        public void DisplayItineraries_ReturnsFalse_WhenEventIsNotItineraryManaged()
        {
            var sut = new EventDetailModel();

            sut.EventType = AllReady.Models.EventType.Rally;

            Assert.False(sut.DisplayItineraries);
        }
コード例 #9
0
        public void DisplayItineraries_ReturnsTrue_WhenEventIsItineraryManaged()
        {
            var sut = new EventDetailModel();

            sut.EventType = AllReady.Models.EventType.Itinerary;

            Assert.True(sut.DisplayItineraries);
        }
コード例 #10
0
        public async Task CreatePostReturnsEditView_When_ModelStateNotValid()
        {
            var sut = GetEventController();

            sut.ModelState.AddModelError("test", "test");
            var eventModel = new EventDetailModel();
            var result     = (ViewResult)await sut.Create(1, eventModel, null);

            Assert.Equal("Edit", result.ViewName);
        }
コード例 #11
0
        public async Task UpdateAsync(EventDetailModel model)
        {
            var entity = MapScheduledEvent(model);

            await ValidateHeatingZone(entity.HeatingZoneId);

            await scheduledEventRepository.UpdateAsync(model.Id, entity);

            RestartScheduler();
        }
コード例 #12
0
        public int Update(EventDetailModel eventDetail)
        {
            var res = AutoMapper.MapItem <EventDetailModel, DAL.EventDetail>(eventDetail);

            //dbContext.Tournaments.Attach(res);

            dbContext.Entry(res).State = EntityState.Modified;

            return(dbContext.SaveChanges());
        }
コード例 #13
0
        private EventDetailModel buildNewEventDetailsModel(EventDetailModel existingEvent, DuplicateEventModel newEventDetails)
        {
            existingEvent.Id            = 0;
            existingEvent.Name          = newEventDetails.Name;
            existingEvent.Description   = newEventDetails.Description;
            existingEvent.StartDateTime = newEventDetails.StartDateTime;
            existingEvent.EndDateTime   = newEventDetails.EndDateTime;

            return(existingEvent);
        }
コード例 #14
0
        public IActionResult Detail(int id)
        {
            var eEvent = _event.GetById(id);

            var model = new EventDetailModel
            {
                Id          = id,
                Name        = eEvent.Name,
                ExpiredTime = eEvent.TicketsInfos.ExpiredTime,
                Filling     = eEvent.Filling,
            };

            return(View(model));
        }
コード例 #15
0
 public static EventUpdateItem ToUpdateItemEntity(this EventDetailModel model)
 {
     return(new EventUpdateItem
     {
         ScoId = model.ScoId,
         FolderId = model.FolderId,
         Name = model.Name,
         Description = model.Description,
         Language = model.Language,
         DateBegin = model.BeginDate.ToString(CultureInfo.CurrentCulture),
         DateEnd = model.EndDate.ToString(CultureInfo.CurrentCulture),
         UrlPath = model.UrlPath,
         Type = ScoType.Event,
         SourceScoId = model.MeetingId
     });
 }
コード例 #16
0
        private static ScheduledEvent MapScheduledEvent(EventDetailModel model)
        {
            var validTo = model.SelectedScheduleMode == ScheduleMode.OneTimeOnly
                ? model.ValidFrom ?? throw new InvalidOperationException($"{nameof(model.ValidFrom)} not set for {nameof(ScheduleMode.OneTimeOnly)} mode.")
                : model.ValidTo;

            var entity = new ScheduledEvent(
                model.HeatingZoneId,
                model.Time.TimeOfDay,
                model.Temperature,
                model.ValidFrom,
                validTo,
                model.SelectedScheduleMode);

            return(entity);
        }
コード例 #17
0
        public void ReturnsCorrectErrorWhenEndDateTimeIsLessThanStartDateTime()
        {
            var validator      = new EventDetailModelValidator();
            var parentCampaign = new CampaignSummaryModel {
                EndDate = new DateTimeOffset(new DateTime(1999, 2, 1))
            };
            var model = new EventDetailModel
            {
                StartDateTime = new DateTimeOffset(new DateTime(2000, 1, 1)),
                EndDateTime   = new DateTimeOffset(new DateTime(1999, 1, 1))
            };

            var errors = validator.Validate(model, parentCampaign);

            Assert.True(errors.Exists(x => x.Key.Equals("EndDateTime")));
            Assert.Equal(errors.Find(x => x.Key == "EndDateTime").Value, "End date cannot be earlier than the start date");
        }
コード例 #18
0
        public async Task <IActionResult> Edit(EventDetailModel campaignEvent, IFormFile fileUpload)
        {
            if (campaignEvent == null)
            {
                return(HttpBadRequest());
            }

            var organizationId = _mediator.Send(new ManagingOrganizationIdByEventIdQuery {
                EventId = campaignEvent.Id
            });

            if (!User.IsOrganizationAdmin(organizationId))
            {
                return(HttpUnauthorized());
            }

            var campaign = await _mediator.SendAsync(new CampaignSummaryQuery { CampaignId = campaignEvent.CampaignId });

            var validator = new EventDetailModelValidator(_mediator);
            var errors    = await validator.Validate(campaignEvent, campaign);

            errors.ForEach(e => ModelState.AddModelError(e.Key, e.Value));

            if (ModelState.IsValid)
            {
                if (fileUpload != null)
                {
                    if (fileUpload.IsAcceptableImageContentType())
                    {
                        campaignEvent.ImageUrl = await _imageService.UploadEventImageAsync(campaign.OrganizationId, campaignEvent.Id, fileUpload);
                    }
                    else
                    {
                        ModelState.AddModelError("ImageUrl", "You must upload a valid image file for the logo (.jpg, .png, .gif)");
                        return(View(campaignEvent));
                    }
                }

                var id = await _mediator.SendAsync(new EditEventCommand { Event = campaignEvent });

                return(RedirectToAction(nameof(Details), new { area = "Admin", id = id }));
            }

            return(View(campaignEvent));
        }
コード例 #19
0
        public async Task ReportErrorsWhenEndDateIsInvalid()
        {
            // arrage
            var mediator  = new Mock <IMediator>();
            var validator = new EventDetailModelValidator(mediator.Object);
            var campaign  = new CampaignSummaryModel();
            var model     = new EventDetailModel
            {
                StartDateTime = new DateTimeOffset(new DateTime(2000, 1, 1)),
                EndDateTime   = new DateTimeOffset(new DateTime(1999, 1, 1))
            };

            // act
            var errors = await validator.Validate(model, campaign);

            // assert
            Assert.True(errors.Exists(x => x.Key.Equals("EndDateTime")));
        }
コード例 #20
0
        public async Task EventDoesNotExist()
        {
            var context = ServiceProvider.GetService <AllReadyContext>();

            var htb = new Organization
            {
                Id        = 123,
                Name      = "Humanitarian Toolbox",
                LogoUrl   = "http://www.htbox.org/upload/home/ht-hero.png",
                WebUrl    = "http://www.htbox.org",
                Campaigns = new List <Campaign>()
            };

            var firePrev = new Campaign
            {
                Id   = 1,
                Name = "Neighborhood Fire Prevention Days",
                ManagingOrganization = htb,
                TimeZoneId           = "Central Standard Time"
            };

            htb.Campaigns.Add(firePrev);

            context.Organizations.Add(htb);
            context.SaveChanges();

            var vm = new EventDetailModel
            {
                CampaignId = 1,
                TimeZoneId = "Central Standard Time"
            };

            var query = new EditEventCommand {
                Event = vm
            };
            var handler = new EditEventCommandHandler(context);
            var result  = await handler.Handle(query);

            Assert.True(result > 0);

            var data = context.Events.Count(_ => _.Id == result);

            Assert.True(data == 1);
        }
コード例 #21
0
        public async Task <IActionResult> Create(int campaignId, EventDetailModel campaignEvent, IFormFile fileUpload)
        {
            var campaign = await _mediator.SendAsync(new CampaignSummaryQuery { CampaignId = campaignId });

            if (campaign == null || !User.IsOrganizationAdmin(campaign.OrganizationId))
            {
                return(HttpUnauthorized());
            }

            var validator = new EventDetailModelValidator(_mediator);
            var errors    = await validator.Validate(campaignEvent, campaign);

            errors.ToList().ForEach(e => ModelState.AddModelError(e.Key, e.Value));

            //TryValidateModel is called explictly because of MVC 6 behavior that supresses model state validation during model binding when binding to an IFormFile.
            //See #619.
            if (ModelState.IsValid && TryValidateModel(campaignEvent))
            {
                if (fileUpload != null)
                {
                    if (!fileUpload.IsAcceptableImageContentType())
                    {
                        ModelState.AddModelError("ImageUrl", "You must upload a valid image file for the logo (.jpg, .png, .gif)");
                        return(View("Edit", campaignEvent));
                    }
                }

                campaignEvent.OrganizationId = campaign.OrganizationId;
                var id = await _mediator.SendAsync(new EditEventCommand { Event = campaignEvent });

                if (fileUpload != null)
                {
                    // resave now that event has the ImageUrl
                    campaignEvent.Id       = id;
                    campaignEvent.ImageUrl = await _imageService.UploadEventImageAsync(campaign.OrganizationId, id, fileUpload);

                    await _mediator.SendAsync(new EditEventCommand { Event = campaignEvent });
                }

                return(RedirectToAction(nameof(Details), new { area = "Admin", id = id }));
            }

            return(View("Edit", campaignEvent));
        }
コード例 #22
0
        public void RetrunsCorrectErrorWhenModelsEndDateTimeIsGreaterThanParentCampaignsEndDate()
        {
            var validator      = new EventDetailModelValidator();
            var parentCampaign = new CampaignSummaryModel
            {
                StartDate = new DateTimeOffset(new DateTime(2000, 1, 1)),
                EndDate   = new DateTimeOffset(new DateTime(2001, 1, 1))
            };
            var model = new EventDetailModel
            {
                StartDateTime = new DateTimeOffset(new DateTime(2001, 1, 1)),
                EndDateTime   = new DateTimeOffset(new DateTime(2001, 2, 1)),
            };

            var errors = validator.Validate(model, parentCampaign);

            Assert.True(errors.Exists(x => x.Key.Equals("EndDateTime")));
            Assert.Equal(errors.Find(x => x.Key == "EndDateTime").Value, "End date cannot be later than the campaign end date " + parentCampaign.EndDate.ToString("d"));
        }
コード例 #23
0
 public ActionResult CreateEvent(EventDetailModel eventDetail, string AllCollages)
 {
     if (ModelState.IsValid)
     {
         eventDetail.CollageID = Convert.ToInt32(AllCollages);
         EventDetailBusinessModel eventBizModel = new EventDetailBusinessModel
         {
             CollageID        = eventDetail.CollageID,
             EventDate        = eventDetail.EventDate,
             EventDescription = eventDetail.EventDescription,
             EventName        = eventDetail.EventName,
             EventType        = eventDetail.EventType
         };
         adminBusinessOperations.CreateEvent(eventBizModel);
         return(RedirectToAction("ListOfEvents"));
     }
     ViewBag.AllCollages = new SelectList(StaticMethod.GetAlCollages(), "CollageID", "CollageName");
     return(View(eventDetail));
 }
コード例 #24
0
        public async Task CreatePostReturnsEditView_When_EventEndDateAfterCampaignEndDate()
        {
            var campaignStartDate = new DateTimeOffset(new DateTime(1900, 1, 1));
            var campaignEndDate   = campaignStartDate.AddDays(4);
            var sut        = GetEventController(campaignStartDate, campaignEndDate);
            var eventModel = new EventDetailModel
            {
                EndDateTime   = campaignEndDate.AddDays(1),
                StartDateTime = campaignStartDate
            };

            var result = (ViewResult)await sut.Create(1, eventModel, null);

            Assert.Equal("Edit", result.ViewName);
            var errors = sut.ModelState.GetErrorMessages();

            Assert.Equal(1, errors.Count);
            Assert.Equal("End date cannot be later than the campaign end date " + campaignEndDate.ToString("d"), errors[0]);
        }
コード例 #25
0
        //
        // GET: /EventDetailAdmin/
        public ActionResult Index(string eventId)
        {
            if (string.IsNullOrEmpty(eventId))
            {
                return(Redirect("/"));
            }

            int  eventIdInt;
            bool isNumeric = int.TryParse(eventId, out eventIdInt);

            if (!isNumeric)
            {
                return(Redirect("/"));
            }

            if ((Session["KardoUserId"] != null && Session["KardoUserName"] != null))
            {
                int userId = Convert.ToInt32(UseKardoEncryption.getDecipherString(Session["KardoUserId"].ToString()));
                Dictionary <string, Object> theUser = DefaultModel.getUserFromUserId(userId);
                ViewBag.userInfos = theUser;

                if (!(bool)theUser["can_examine_salesDetails"])
                {
                    return(Redirect("/"));
                }
            }
            else
            {
                return(Redirect("/"));
            }


            Dictionary <string, Object> theEvent = EventDetailModel.getEventInfo(eventIdInt);

            ViewBag.theEvent = theEvent;
            Dictionary <string, List <Object> > ticketInfos = EventDetailModel.getEventTicketInfo(eventIdInt);

            ViewBag.ticketInfos = ticketInfos;


            return(View());
        }
コード例 #26
0
 public void AddDetails(EventDetailModel model)
 {
     using (var unitofwork = new UnitOfWork())
     {
         var item = unitofwork.EventRepository.GetById(model.EventID);
         if (item != null)
         {
             item.EventDetails.Add(new Data.Entities.EventDetail {
                 EventDetailID     = model.EventDetailID,
                 EventID           = model.EventID,
                 EventDetailNumber = model.EventDetailNumber,
                 EventDetailsName  = model.EventDetailsName,
                 EventOdd          = model.EventOdd,
                 FinishingPosition = model.FinishingPosition,
                 FirstTimer        = model.FirstTimer,
             });
         }
         unitofwork.EventRepository.Update(item);
     }
 }
コード例 #27
0
        public ActionResult EventDetailPage(ContentModel model, long?e)
        {
            if (!long.TryParse(Request.QueryString["e"], out long id))
            {
                return(Redirect(string.Concat("/", CurrentUser.LanguageCode, "/page-not-found")));
            }
            var evnt = UvendiaContext.Events.Single(id);

            if (evnt == null)
            {
                return(Redirect(string.Concat("/", CurrentUser.LanguageCode, "/page-not-found")));
            }
            var imageUrl = CloudinaryService.GetCloudinaryUrl(evnt["Image 1"].ConvertTo <string>(), 886, 575, CropType.Fit, gravityType: GravityType.None, effect: Effect.Incognito);

            var edm = new EventDetailModel(model.Content);

            edm.Event    = evnt;
            edm.ImageUrl = imageUrl;

            return(CurrentTemplate(edm));
        }
コード例 #28
0
        public List <KeyValuePair <string, string> > Validate(EventDetailModel model, CampaignSummaryModel parentCampaign)
        {
            var result = new List <KeyValuePair <string, string> >();

            if (model.EndDateTime < model.StartDateTime)
            {
                result.Add(new KeyValuePair <string, string>(nameof(model.EndDateTime), "End date cannot be earlier than the start date"));
            }

            if (model.StartDateTime < parentCampaign.StartDate)
            {
                result.Add(new KeyValuePair <string, string>(nameof(model.StartDateTime), "Start date cannot be earlier than the campaign start date " + parentCampaign.StartDate.ToString("d")));
            }

            if (model.EndDateTime > parentCampaign.EndDate)
            {
                result.Add(new KeyValuePair <string, string>(nameof(model.EndDateTime), "End date cannot be later than the campaign end date " + parentCampaign.EndDate.ToString("d")));
            }

            return(result);
        }
コード例 #29
0
        public string getSectionInfo()
        {
            string eventIdStr = Request.Form["eventId"];
            string ssi        = Request.Form["ssi"];
            string ssiDec     = UseKardoEncryption.getDecipherString(ssi);

            if (ssiDec == "KardoEncryptionError")
            {
                return("{}");
            }

            int  eventId, ssId;
            bool isNumeric  = int.TryParse(eventIdStr, out eventId);
            bool isNumeric2 = int.TryParse(ssiDec, out ssId);

            if (isNumeric && isNumeric2)
            {
                return(EventDetailModel.getSectionInfo(eventId, ssId));
            }
            return("{}");
        }
コード例 #30
0
        public async Task <IActionResult> Create(int campaignId)
        {
            var campaign = await _mediator.SendAsync(new CampaignSummaryQuery { CampaignId = campaignId });

            if (campaign == null || !User.IsOrganizationAdmin(campaign.OrganizationId))
            {
                return(HttpUnauthorized());
            }

            var campaignEvent = new EventDetailModel
            {
                CampaignId       = campaign.Id,
                CampaignName     = campaign.Name,
                TimeZoneId       = campaign.TimeZoneId,
                OrganizationId   = campaign.OrganizationId,
                OrganizationName = campaign.OrganizationName,
                StartDateTime    = DateTime.Today.Date,
                EndDateTime      = DateTime.Today.Date.AddMonths(1)
            };

            return(View("Edit", campaignEvent));
        }