public ActionResult Create()
 {
     var viewModel = new EditEventViewModel
                         {
                             Date = DateTime.Now,
                             RoomNumber = 1
                         };
     return View(viewModel);
 }
        public ActionResult Create(MyEventsIdentity identity, EditEventViewModel viewModel)
        {
            SetLogo(viewModel, ModelState);

            if (!ModelState.IsValid)
                return View(viewModel);

            var eventDefinition = new EventDefinition();
            MapViewModelToEventDefinition(viewModel, eventDefinition);
            eventDefinition.OrganizerId = identity.UserId;
            _eventsRepository.Add(eventDefinition);

            ResetLogo();
            return RedirectToAction("Index", "Home");
        }
        private void SetLogo(EditEventViewModel viewModel, ModelStateDictionary modelState)
        {
            bool hasLogo = Session[CurrentLogoKey] != null;

            if(hasLogo)
            {
                viewModel.Logo = (byte[])Session[CurrentLogoKey];
                viewModel.IsLogoSetted = true;
                viewModel.HasLogo = true;
                if(modelState.ContainsKey("HasLogo"))
                    modelState.Remove("HasLogo");
            }
        }
        private void MapViewModelToEventDefinition(EditEventViewModel viewModel, EventDefinition eventDefinition)
        {
            eventDefinition.Address = viewModel.Address;
            eventDefinition.City = viewModel.City;
            eventDefinition.Date = viewModel.Date;
            eventDefinition.Description = viewModel.Description;
            eventDefinition.EndTime = viewModel.EndTime.ToUniversalTime();
            eventDefinition.EventDefinitionId = viewModel.EventDefinitionId;
            eventDefinition.Latitude = viewModel.Latitude;
            eventDefinition.Longitude = viewModel.Longitude;
            eventDefinition.Name = viewModel.Name;
            eventDefinition.RoomNumber = viewModel.RoomNumber;
            eventDefinition.StartTime = viewModel.StartTime.ToUniversalTime();
            eventDefinition.Tags = viewModel.Tags;
            eventDefinition.TimeZoneOffset = viewModel.TimeZoneOffset;
            eventDefinition.TwitterAccount = viewModel.TwitterAccount;
            eventDefinition.ZipCode = viewModel.ZipCode;

            if (viewModel.IsLogoSetted)
                eventDefinition.Logo = viewModel.Logo;
        }
 private void MapEventDefinitionToViewModel(EventDefinition eventDefinition, EditEventViewModel viewModel)
 {
     viewModel.Address = eventDefinition.Address;
     viewModel.City = eventDefinition.City;
     viewModel.Date = eventDefinition.Date;
     viewModel.Description = eventDefinition.Description;
     viewModel.EndTime = eventDefinition.EndTime;
     viewModel.EventDefinitionId = eventDefinition.EventDefinitionId;
     viewModel.Latitude = eventDefinition.Latitude;
     viewModel.Longitude = eventDefinition.Longitude;
     viewModel.Name = eventDefinition.Name;
     viewModel.RoomNumber = eventDefinition.RoomNumber;
     viewModel.StartTime = eventDefinition.StartTime;
     viewModel.Tags = eventDefinition.Tags;
     viewModel.TimeZoneOffset = eventDefinition.TimeZoneOffset;
     viewModel.TwitterAccount = eventDefinition.TwitterAccount;
     viewModel.ZipCode = eventDefinition.ZipCode;
 }
        public ActionResult Edit(MyEventsIdentity identity, EditEventViewModel viewModel)
        {
            SetLogo(viewModel, ModelState);

            if (!ModelState.IsValid)
                return View(viewModel);

            var eventDefinition = _eventsRepository.GetById(viewModel.EventDefinitionId);

            _authorizationService.ValidateEventAuthorization(identity, eventDefinition);

            MapViewModelToEventDefinition(viewModel, eventDefinition);
            _eventsRepository.Update(eventDefinition);

            ResetLogo();
            return RedirectToAction("Index", "Home");
        }
        public ActionResult Edit(MyEventsIdentity identity, int eventDefinitionId)
        {
            EventDefinition eventDefinition = _eventsRepository.GetById(eventDefinitionId);

            _authorizationService.ValidateEventAuthorization(identity, eventDefinition);

            var viewModel = new EditEventViewModel()
                                {
                                    HasLogo = true
                                };
            MapEventDefinitionToViewModel(eventDefinition, viewModel);
            ResetLogo();
            return View(viewModel);
        }