Beispiel #1
0
        public async Task <GuidDataModel> Add(GuidAPIModel inputModel)
        {
            GuidDataModel guidModel = inputModel.ToDataModel();

            if (!IsModelValid(guidModel))
            {
                throw new InvalidRequestParameter(Constants.INVALID_MODEL);
            }

            //check if guid already exists

            var item = await _context.GuidList.FindAsync(guidModel.Guid);

            if (item != null)
            {
                throw new RecordAlreadyExists(Constants.GUID_ALREADY_EXISTS);
            }
            else
            {
                guidModel.Expire = guidModel.Expire;
                _context.GuidList.Add(guidModel);
                await _context.SaveChangesAsync();
            }

            return(guidModel);
        }
Beispiel #2
0
        public async Task Put_ValidRequest_GuidPresent()
        {
            Guid newGuid = new Guid("6F729C08-A503-4C16-9262-46AAEF1F2CA2");

            _dbContext.GuidList.Add(new GuidDataModel
            {
                Guid   = new Guid("6F729C08-A503-4C16-9262-46AAEF1F2CA2"),
                Expire = 100,
                User   = "******"
            });
            _dbContext.SaveChanges();

            GuidAPIModel guidModel = new GuidAPIModel()
            {
                Expire = 185823,
                User   = "******"
            };

            _dbContext.Add(guidModel.ToDataModel());
            _dbContext.SaveChanges();
            var result = await _guidController.PutGuid(newGuid, guidModel);

            Assert.IsType <GuidAPIModel>(result.Value);
            Assert.Equal(newGuid, (result.Value as GuidAPIModel).Guid);
            Assert.Equal("Updated text from PUT", (result.Value as GuidAPIModel).User);
            Assert.Equal(185823, (result.Value as GuidAPIModel).Expire);
        }
Beispiel #3
0
        public async Task <GuidDataModel> Update(Guid guid, GuidAPIModel updatedModel)
        {
            if (updatedModel.Guid.HasValue)
            {
                throw new InvalidRequestParameter(Constants.GUID_NOT_UPDATABLE);
            }

            GuidDataModel originalGuid = await _context.GuidList.FindAsync(guid);

            if (originalGuid == null)
            {
                throw new RecordNotFound(Constants.GUID_NOT_FOUND);
            }

            if (updatedModel.Expire.HasValue)
            {
                originalGuid.Expire = updatedModel.Expire.Value;
            }

            if (updatedModel.User != null)
            {
                originalGuid.User = updatedModel.User;
            }

            await _context.SaveChangesAsync();

            if (_cache.Get <GuidDataModel>(guid) != null)
            {
                _cache.Delete(guid);
            }
            _cache.Add <GuidDataModel>(guid, originalGuid);

            return(originalGuid);
        }
Beispiel #4
0
        public async Task Put_RecordNotFound()
        {
            GuidAPIModel guidModel = new GuidAPIModel();
            Guid         newGuid   = Guid.NewGuid();

            await Assert.ThrowsAsync <RecordNotFound>(async() => await _guidController.PutGuid(newGuid, guidModel));
        }
        public async Task <ActionResult <GuidAPIModel> > PutGuid(Guid guid, GuidAPIModel inputModel)
        {
            // try
            {
                var guidModel = await _manager.Update(guid, inputModel);

                return(guidModel.ToAPIModel());
            }
        }
Beispiel #6
0
        public async Task Put_InvalidRequest()
        {
            GuidAPIModel guidModel = new GuidAPIModel();
            Guid         newGuid   = Guid.NewGuid();

            guidModel.Guid = newGuid;

            await Assert.ThrowsAsync <InvalidRequestParameter>(async() => await _guidController.PutGuid(newGuid, guidModel));
        }
Beispiel #7
0
        public async Task Post_ValidRequest_GuidAndExpireAbsent()
        {
            GuidAPIModel guidModel = new GuidAPIModel()
            {
                User = "******"
            };

            var result = await _guidController.PostGuid(guidModel);

            Assert.IsType <GuidAPIModel>(result.Value);
            Assert.NotEqual(Guid.Empty, (result.Value as GuidAPIModel).Guid);
            Assert.Equal("New text from Post method - 3", (result.Value as GuidAPIModel).User);
            Assert.NotEqual(0, (result.Value as GuidAPIModel).Expire);
        }
Beispiel #8
0
        public async Task Post_Invalid_GuidAlreadyPresent()
        {
            GuidAPIModel guidModel = new GuidAPIModel()
            {
                Guid   = new Guid("6F729C08-A503-4C16-9262-46AAEF1F2CFF"),
                Expire = 185823,
                User   = "******"
            };

            _dbContext.Add(guidModel.ToDataModel());
            _dbContext.SaveChanges();

            await Assert.ThrowsAsync <RecordAlreadyExists>(async() => await _guidController.PostGuid(guidModel));
        }
Beispiel #9
0
        public async Task Post_ValidRequest_GuidPresent()
        {
            GuidAPIModel guidModel = new GuidAPIModel()
            {
                Guid   = new Guid("FCC19AA2-42B5-4195-85BC-FC0A923D6125"),
                Expire = 155849,
                User   = "******"
            };

            var result = await _guidController.PostGuid(guidModel);

            Assert.IsType <GuidAPIModel>(result.Value);
            Assert.Equal(new Guid("FCC19AA2-42B5-4195-85BC-FC0A923D6125"), (result.Value as GuidAPIModel).Guid);
            Assert.Equal("New text from Post method", (result.Value as GuidAPIModel).User);
            Assert.Equal(155849, (result.Value as GuidAPIModel).Expire);
        }
Beispiel #10
0
        public async Task <ActionResult <GuidAPIModel> > PostGuid(GuidAPIModel inputModel)
        {
            GuidDataModel guidModel = await _manager.Add(inputModel);

            return(guidModel.ToAPIModel());
        }