예제 #1
0
        public async Task <Event> UpdateEvent(DataForAddingEventDto updatedEvent, int id)
        {
            var content = GetFormDataContent(updatedEvent);

            content.Add(new StringContent(id.ToString()), "Id");
            var eventFromRepo = await _apiService.PutFormAsync <Event>(Url, content);

            return(eventFromRepo);
        }
예제 #2
0
        private MultipartFormDataContent GetFormDataContent(DataForAddingEventDto newEvent)
        {
            var content = new MultipartFormDataContent();

            content.Headers.ContentDisposition =
                new System.Net.Http.Headers.ContentDispositionHeaderValue("form-data");
            content.Add(new StringContent(newEvent.Name), "Name");
            if (newEvent.Icon.Data != null)
            {
                content.Add(new StreamContent(newEvent.Icon.Data, (int)newEvent.Icon.Data.Length), "Icon",
                            newEvent.Icon.Name);
            }
            content.Add(new StringContent(newEvent.CategoryId.ToString()), "CategoryId");
            content.Add(new StringContent(newEvent.EventTypeId.ToString()), "EventTypeId");
            content.Add(new StringContent(newEvent.About), "About");
            if (!string.IsNullOrEmpty(newEvent.Format))
            {
                content.Add(new StringContent(newEvent.Format), "Format");
            }
            if (!string.IsNullOrEmpty(newEvent.Rules))
            {
                content.Add(new StringContent(newEvent.Rules), "Rules");
            }
            content.Add(new StringContent(newEvent.Venue), "Venue");
            content.Add(new StringContent(newEvent.Day.ToString()), "Day");
            content.Add(new StringContent(newEvent.Datetime.ToString("yyyy-MM-dd HH:mm:ss")), "Datetime");
            content.Add(new StringContent(newEvent.NumberOfRounds.ToString()), "NumberOfRounds");
            content.Add(new StringContent(newEvent.CurrentRound.ToString()), "CurrentRound");
            content.Add(new StringContent(newEvent.EventStatusId.ToString()), "EventStatusId");
            content.Add(new StringContent(newEvent.EntryFee.ToString()), "EntryFee");
            content.Add(new StringContent(newEvent.PrizeMoney.ToString()), "PrizeMoney");
            content.Add(new StringContent(newEvent.IsTeam.ToString()), "IsTeam");
            content.Add(new StringContent(newEvent.TeamSize.ToString()), "TeamSize");
            content.Add(new StringContent(newEvent.NeedRegistration.ToString()), "NeedRegistration");
            if (!string.IsNullOrEmpty(newEvent.Button))
            {
                content.Add(new StringContent(newEvent.Button), "Button");
            }
            if (!string.IsNullOrEmpty(newEvent.RegistrationLink))
            {
                content.Add(new StringContent(newEvent.RegistrationLink), "RegistrationLink");
            }
            if (newEvent.RegistrationOpen != null)
            {
                content.Add(new StringContent(newEvent.RegistrationOpen.ToString()), "RegistrationOpen");
            }
            if (newEvent.RegistrationEndDate != null)
            {
                content.Add(
                    new StringContent(Convert.ToDateTime(newEvent.RegistrationEndDate).ToString("yyyy-MM-dd HH:mm:ss")),
                    "RegistrationEndDate");
            }
            content.Add(new StringContent(newEvent.EventHead1Id.ToString()), "EventHead1Id");
            content.Add(new StringContent(newEvent.EventHead2Id.ToString()), "EventHead2Id");
            return(content);
        }
예제 #3
0
        public async Task <Event> AddEvent(DataForAddingEventDto newEvent)
        {
            if (newEvent.Icon.Data == null)
            {
                _notification.Error("Icon Should not be null");
                throw new Exception("Icon Should not be null");
            }

            var content         = GetFormDataContent(newEvent);
            var eventFromServer = await _apiService.PostFormAsync <Event>("/events/api/events", content);

            newEvent.Icon.Data?.Dispose();

            return(eventFromServer);
        }
        public async Task <Event> AddEvent(DataForAddingEventDto eventDataFromClient)
        {
            if (eventDataFromClient.Icon is null)
            {
                throw new DataInvalidException("Please provide an icon for the event");
            }
            var newEvent = _mapper.Map <Event>(eventDataFromClient);
            await _context.Events.AddAsync(newEvent);

            if (await _context.SaveChangesAsync() <= 0)
            {
                throw new Exception("Problem Saving Changes");
            }
            var imageUrl = await _service.UploadEventIcon(newEvent.Id.ToString(), eventDataFromClient.Icon);

            newEvent.Icon = imageUrl;
            await _context.SaveChangesAsync();

            return(newEvent);
        }
예제 #5
0
 public async Task <ActionResult <Event> > AddEvent([FromForm] DataForAddingEventDto eventDataFromClient)
 {
     return(Ok(await _repo.AddEvent(eventDataFromClient)));
 }