コード例 #1
0
        public async Task <IActionResult> RegisterBadge(Badge badge)
        {
            await _context.Badges.AddAsync(badge);

            await _context.SaveChangesAsync();

            return(CreatedAtAction(nameof(GetBadgeById), new { id = badge.Id }, badge));
        }
コード例 #2
0
        public async Task <IActionResult> UpdateEvent(Guid eventId, Event newEvent)
        {
            var existingEvent = await _context.Events.FirstOrDefaultAsync(x => x.Id == eventId);

            existingEvent.Address     = newEvent.Address;
            existingEvent.Title       = newEvent.Title;
            existingEvent.Start       = newEvent.Start;
            existingEvent.End         = newEvent.End;
            existingEvent.Description = newEvent.Description;
            existingEvent.Badge       = newEvent.Badge;

            _context.Entry(existingEvent).State = EntityState.Modified;
            await _context.SaveChangesAsync();

            return(NoContent());
        }
コード例 #3
0
        public async Task <Unit> Handle(DeleteMakerSpace request, CancellationToken cancellationToken)
        {
            var makerspace = await _context.MakerSpace.FirstOrDefaultAsync(x => x.Id == request.Id);

            _context.MakerSpace.Remove(makerspace);
            await _context.SaveChangesAsync();

            return(new Unit());
        }
コード例 #4
0
        public async Task <Unit> Handle(RemoveUser request, CancellationToken cancellationToken)
        {
            var user = await _context.Users.FindAsync(request.Id);

            _context.Users.Remove(user);
            await _context.SaveChangesAsync();

            return(new Unit());
        }
コード例 #5
0
        public async Task <Unit> Handle(UpdateMakerSpace request, CancellationToken cancellationToken)
        {
            var makerspace = await _context.MakerSpace.Include(x => x.Address).Include(x => x.ContactInfo).FirstOrDefaultAsync(x => x.Id == request.Id);

            makerspace.UpdateMakerSpace(request);
            _context.Entry(makerspace).State = EntityState.Modified;
            await _context.SaveChangesAsync();

            return(new Unit());
        }
コード例 #6
0
        public async Task <Unit> Handle(UpdateMakerSpaceTool request, CancellationToken cancellationToken)
        {
            var tool = await _context.Set <Tool>().FirstOrDefaultAsync(x => x.Id == request.Id);

            tool.UpdateTool(request);
            _context.Entry(tool).State = EntityState.Modified;
            await _context.SaveChangesAsync();

            return(new Unit());
        }
コード例 #7
0
        public async Task <Unit> Handle(UpdateUser request, CancellationToken cancellationToken)
        {
            var user = await _context.Users.FindAsync(request.Id);

            user.UpdateUserFromRequest(request);
            _context.Entry(user).State = EntityState.Modified;
            await _context.SaveChangesAsync();

            return(new Unit());
        }
コード例 #8
0
        public async Task <Unit> Handle(EditMakerSpaceAddress request, CancellationToken cancellationToken = default)
        {
            var makerSpace = await _context.MakerSpace.Include(x => x.Address).FirstOrDefaultAsync(x => x.Id == request.MakerSpaceId);

            var newAddress = new Address(request.Street, request.City, request.Country, request.Country);

            makerSpace.Address = newAddress;
            await _context.SaveChangesAsync();

            return(new Unit());
        }
コード例 #9
0
        public async Task <IActionResult> UserFollowsMakerSpace(Guid userId, Guid makerspaceId)
        {
            var user = await _context.Users.Include(x => x.MakerSpaces).FirstOrDefaultAsync(x => x.Id == userId);

            var ms = await _context.MakerSpace.FirstOrDefaultAsync(x => x.Id == makerspaceId);

            if (user is null || ms is null)
            {
                return(NotFound());
            }
            if (user.MakerSpaces.Contains(ms))
            {
                return(NotFound("User already follows makerspace"));
            }
            user.MakerSpaces.Add(ms);
            _context.Entry(user).State = EntityState.Modified;
            await _context.SaveChangesAsync();

            return(Accepted());
        }
コード例 #10
0
        public async Task <RegisterMakerSpaceResponseV2> Handle(RegisterMakerSpaceV2 request, CancellationToken cancellationToken)
        {
            var makerspace = Create(request);

            _context.MakerSpace.Add(makerspace);
            await _context.SaveChangesAsync();

            return(new RegisterMakerSpaceResponseV2 {
                Id = makerspace.Id
            });
        }
コード例 #11
0
        public async Task <Unit> Handle(RemoveMakerSpaceTool request, CancellationToken cancellationToken = default)
        {
            var makerSpace = await _context.MakerSpace.Include(x => x.Tools).FirstOrDefaultAsync(x => x.Id == request.MakerSpaceId);

            var tool = makerSpace.Tools.FirstOrDefault(x => x.Id == request.ToolId);

            makerSpace.Tools.Remove(tool);
            await _context.SaveChangesAsync();

            return(new Unit());
        }
コード例 #12
0
        public async Task <Unit> Handle(EditMakerSpaceContactInfo request, CancellationToken cancellationToken = default)
        {
            var makerSpace = await _context.MakerSpace.Include(x => x.ContactInfo).FirstOrDefaultAsync(x => x.Id == request.MakerSpaceId);

            var newContactInfo = new ContactInfo {
                Email = request.Email, Phone = request.Phone
            };

            makerSpace.ContactInfo = newContactInfo;
            await _context.SaveChangesAsync();

            return(new Unit());
        }
コード例 #13
0
        public async Task <RegisterUserResponse> Handle(RegisterUser request, CancellationToken cancellationToken)
        {
            var user = ConvertCommandToUser(request);

            _context.Users.Add(user);
            await _context.SaveChangesAsync();

            var response = new RegisterUserResponse {
                Id = user.Id
            };

            return(response);
        }
コード例 #14
0
        public async Task <RegisterEventResponse> Handle(RegisterEvent request, CancellationToken cancellationToken)
        {
            var newEvent = ConvertCommandToEvent(request);

            _context.Events.Add(newEvent);

            await _context.SaveChangesAsync();

            var response = new RegisterEventResponse {
                Id = newEvent.Id
            };

            return(response);
        }
コード例 #15
0
        public async Task <Unit> Handle(AddMakerSpaceTool request, CancellationToken cancellationToken = default)
        {
            var makerSpace = await _context.MakerSpace.Include(x => x.Tools).FirstOrDefaultAsync(x => x.Id == request.MakerSpaceId);

            var msTool = makerSpace.Tools.FirstOrDefault(x => x.Make == request.Make && x.Model == request.Model);
            var tool   = new Tool {
                Make = request.Make, Model = request.Model
            };

            makerSpace.Tools.Add(tool);
            await _context.SaveChangesAsync();

            return(new Unit());
        }
コード例 #16
0
        public async Task <Unit> Handle(EditBaseMakerSpace request, CancellationToken cancellationToken = default)
        {
            var makerSpace = await _context.MakerSpace.FirstOrDefaultAsync(x => x.Id == request.MakerSpaceId);

            if (makerSpace is null)
            {
                throw new NullReferenceException("Cannot find MakerSpace");
            }
            makerSpace.Name       = request.Name;
            makerSpace.VATNumber  = request.VATNumber;
            makerSpace.Logo       = request.LogoUrl;
            makerSpace.AccessType = request.AccessType;
            await _context.SaveChangesAsync();

            return(new Unit());
        }
コード例 #17
0
        public async Task <Guid> Handle(RegisterMakerSpace request, CancellationToken cancellationToken = default)
        {
            var newAddress     = new Address(request.Street, request.City, request.Country, request.PostCode);
            var newContactInfo = new ContactInfo {
                Email = request.Email, Phone = request.Phone
            };
            var newMakerSpace = new MakerSpace
            {
                Name        = request.Name,
                Address     = newAddress,
                ContactInfo = newContactInfo,
                VATNumber   = request.VATNumber,
                Logo        = request.LogoUrl,
                AccessType  = request.AccessType
            };

            _context.MakerSpace.Add(newMakerSpace);
            await _context.SaveChangesAsync();

            return(newMakerSpace.Id);
        }