public void Should_map_from_entity()
        {
            var user = new User("foo");

            var entity = new CallForSpeakers
            {
                Description     = "description",
                EventName       = "event name",
                FirstDayOfEvent = new DateTime(2001, 1, 2),
                Id              = 123,
                LastDayOfEvent  = new DateTime(2001, 1, 3),
                LastDayToSubmit = new DateTime(2001, 1, 4),
                LogoUrl         = "logo url",
                Slug            = "asdasd",
                Organizer       = user
            };

            var input = new CallForSpeakersInput(entity);

            input.Description.ShouldEqual(entity.Description);
            input.EventName.ShouldEqual(entity.EventName);
            input.FirstDayOfEvent.ShouldEqual(entity.FirstDayOfEvent);
            input.Id.ShouldEqual(entity.Id);
            input.LastDayOfEvent.ShouldEqual(entity.LastDayOfEvent);
            input.LastDayToSubmit.ShouldEqual(entity.LastDayToSubmit);
            input.LogoUrl.ShouldEqual(entity.LogoUrl);
        }
        public void UpdateFrom(CallForSpeakersInput input)
        {
            LogoUrl     = input.LogoUrl;
            Description = input.Description;

            FirstDayOfEvent = input.FirstDayOfEvent;
            LastDayOfEvent  = input.LastDayOfEvent;
            LastDayToSubmit = input.LastDayToSubmit;
        }
        void SetSlug(CallForSpeakersInput input)
        {
            var eventKey = (input.EventName ?? string.Empty).ToLower().Replace(' ', '-');

            if (eventKey.Length > 26)
            {
                eventKey = eventKey.Substring(0, 26);
            }
            var dateKey = FirstDayOfEvent == null ? "" : FirstDayOfEvent.Value.ToString("-yyyy-MM-dd");

            Slug = string.Format("{0}{1}", eventKey, dateKey);
        }
Exemple #4
0
 public ActionResult ProcessCreation(CallForSpeakersInput input, User user)
 {
     if (ModelState.IsValid)
     {
         using (var db = new DataContext(user))
         {
             db.CallsForSpeakers.Add(new CallForSpeakers(input, user));
             db.SaveChanges();
         }
         return(RedirectToAction("Index", "Home"));
     }
     return(View());
 }
        public void Should_generate_unique_url_key()
        {
            var input = new CallForSpeakersInput
            {
                Description     = "description",
                EventName       = "event name",
                LastDayToSubmit = new DateTime(2001, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
                FirstDayOfEvent = new DateTime(2001, 2, 1, 0, 0, 0, 0, DateTimeKind.Utc),
                LastDayOfEvent  = new DateTime(2001, 3, 1, 0, 0, 0, 0, DateTimeKind.Utc),
                LogoUrl         = "logo url"
            };

            var call = new CallForSpeakers(input);

            call.Slug.ShouldEqual("event-name-2001-02-01");
        }
        public void Should_truncate_large_key()
        {
            var input = new CallForSpeakersInput
            {
                Description     = "description",
                EventName       = "1234567890123456789012345678901234567890",
                LastDayToSubmit = new DateTime(2001, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
                FirstDayOfEvent = new DateTime(2001, 2, 1, 0, 0, 0, 0, DateTimeKind.Utc),
                LastDayOfEvent  = new DateTime(2001, 3, 1, 0, 0, 0, 0, DateTimeKind.Utc),
                LogoUrl         = "logo url"
            };

            var call = new CallForSpeakers(input);

            call.Slug.ShouldEqual("12345678901234567890123456-2001-02-01");
            call.Slug.Length.ShouldBeInRange(1, 40);
        }
        public void When_initializing_data_entity_from_user_input()
        {
            var input = new CallForSpeakersInput
            {
                Description     = "description",
                EventName       = "event name",
                LastDayToSubmit = new DateTime(2001, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
                FirstDayOfEvent = new DateTime(2001, 2, 1, 0, 0, 0, 0, DateTimeKind.Utc),
                LastDayOfEvent  = new DateTime(2001, 3, 1, 0, 0, 0, 0, DateTimeKind.Utc),
                LogoUrl         = "logo url"
            };

            var model = new CallForSpeakers(input);

            model.Description.ShouldEqual(input.Description);
            model.EventName.ShouldEqual(input.EventName);
            model.LastDayToSubmit.ShouldEqual(input.LastDayToSubmit);
            model.FirstDayOfEvent.ShouldEqual(input.FirstDayOfEvent);
            model.LastDayOfEvent.ShouldEqual(input.LastDayOfEvent);
            model.LogoUrl.ShouldEqual(input.LogoUrl);
        }
 public CallForSpeakers(CallForSpeakersInput input, User user) : this(input)
 {
     Organizer = user;
 }
 public CallForSpeakers(CallForSpeakersInput input)
 {
     EventName = input.EventName;
     UpdateFrom(input);
     SetSlug(input);
 }