예제 #1
0
        public async Task <SpaceResponse> EditSpaceAsync(SpaceRequest space, Guid venueId, Guid spaceId)
        {
            SpaceDto spaceDto = space.MapRequestToDto(venueId, spaceId);

            await _spaceRepo.EditSpaceAsync(spaceDto);

            return(await GetSpaceAsync(venueId, spaceId));
        }
예제 #2
0
        public async Task <SpaceResponse> AddSpaceAsync(SpaceRequest space, Guid venueId)
        {
            SpaceDto spaceDto = space.MapRequestToDto(venueId, Guid.Empty);

            Guid insertedSpaceId = await _spaceRepo.AddSpaceAsync(spaceDto);

            return(await GetSpaceAsync(venueId, insertedSpaceId));
        }
예제 #3
0
        public async Task <bool> EditSpaceAsync(SpaceDto spaceDto)
        {
            using (SqlConnection con = new SqlConnection(_connectionString))
            {
                bool updateSpaceResult = await con.UpdateAsync(spaceDto);

                if (!updateSpaceResult)
                {
                    throw new HttpStatusCodeResponseException(HttpStatusCode.NotModified);
                }

                return(updateSpaceResult);
            }
        }
예제 #4
0
파일: MainPage.cs 프로젝트: elix22/urho
        public MainPage(ScannerConnection connection, bool offlineMode)
        {
            this.connection = connection;
            this.serializer = new ProtobufNetworkSerializer();
            NavigationPage.SetHasNavigationBar(this, false);

            var grid = new Grid();

            grid.ColumnDefinitions.Add(new ColumnDefinition {
                Width = new GridLength(1, GridUnitType.Star)
            });
            grid.ColumnDefinitions.Add(new ColumnDefinition {
                Width = new GridLength(4, GridUnitType.Star)
            });

            bulbsStack = new StackLayout();
            grid.Children.Add(bulbsStack);

            urhoSurface = new UrhoSurface
            {
                BackgroundColor = Color.Black,
                VerticalOptions = LayoutOptions.FillAndExpand
            };

            var stack = new StackLayout
            {
                VerticalOptions = LayoutOptions.FillAndExpand,
                Children        = { urhoSurface }
            };

            grid.Children.Add(stack);
            Grid.SetColumn(stack, 1);
            Content = grid;

            if (!offlineMode)
            {
                space = new SpaceDto();
                connection.RegisterFor <SurfaceDto>(OnSurfaceReceived);
                connection.RegisterFor <BulbAddedDto>(OnBulbAdded);
                connection.RegisterFor <CurrentPositionDto>(OnCurrentPositionUpdated);
                Start();
            }
            else
            {
                space = serializer.Deserialize <SpaceDto>(
                    (byte[])Application.Current.Properties[nameof(SpaceDto)]);
            }
        }
예제 #5
0
        public async Task <Guid> AddSpaceAsync(SpaceDto spaceDto)
        {
            using (SqlConnection con = new SqlConnection(_connectionString))
            {
                Guid insertedSpaceId = await con.QueryFirstOrDefaultAsync <Guid>("DECLARE @TempTable table([SpaceId] [uniqueidentifier]); " +
                                                                                 "INSERT INTO Space (Title, Description, Summary, Murl, MaxCapacity, VenueId, SpaceTypeId) " +
                                                                                 "   OUTPUT INSERTED.[SpaceId] INTO @TempTable " +
                                                                                 "VALUES (@Title, @Description, @Summary, @Murl, @MaxCapacity, @VenueId, @SpaceTypeId);" +
                                                                                 "SELECT [SpaceId] FROM @TempTable;", spaceDto);

                if (insertedSpaceId == Guid.Empty)
                {
                    throw new HttpStatusCodeResponseException(HttpStatusCode.NotModified, $"Error inserting Space:\n{JsonConvert.SerializeObject(spaceDto)}\n");
                }

                return(insertedSpaceId);
            }
        }
예제 #6
0
        public static SpaceResponse MapDtosToResponse(this IEnumerable <SpaceDto> spaceDtos)
        {
            SpaceDto spaceDto = spaceDtos.FirstOrDefault();

            SpaceResponse model = new SpaceResponse
            {
                SpaceId     = spaceDto.SpaceId,
                MaxCapacity = spaceDto.MaxCapacity,
                Title       = spaceDto.Title,
                Description = spaceDto.Description,
                Summary     = spaceDto.Summary,
                MUrl        = spaceDto.MUrl,
                VenueId     = spaceDto.VenueId,
                SpaceImages = new List <SpaceImageDto>(),
                SpaceType   = new SpaceTypeDto
                {
                    SpaceTypeId = spaceDto.SpaceTypeId,
                    Description = spaceDto.SpaceTypeDescription
                }
            };

            foreach (SpaceDto space in spaceDtos)
            {
                if (space.SpaceImageId != Guid.Empty)
                {
                    model.SpaceImages.Add(new SpaceImageDto
                    {
                        Base64SpaceImageString = space.Base64SpaceImageString,
                        SpaceId      = space.SpaceId,
                        SpaceImageId = space.SpaceImageId
                    });
                }

                if (space.SpaceTypeId != Guid.Empty)
                {
                    model.SpaceType.SpaceTypeId = space.SpaceTypeId;
                    model.SpaceType.Description = space.SpaceTypeDescription;
                }
            }

            return(model);
        }
예제 #7
0
        public async Task <IHttpActionResult> CreateSpace(SpaceDto space)
        {
            int id = await _spaceService?.CreateAsync(space);

            return(Ok(id));
        }
예제 #8
0
        public async Task <IHttpActionResult> UpdateSpace(int id, SpaceDto space)
        {
            await _spaceService?.UpdateAsync(id, space);

            return(Ok());
        }