Esempio n. 1
0
        public IHttpActionResult Put(int id, [FromBody] CreateClearanceCode command)
        {
            if (command == null || !ModelState.IsValid || id == 0)
            {
                return(this.Error().InvalidParameters());
            }

            var clearancecode = _clearanceRepository.Find(id);

            if (clearancecode == null)
            {
                return(NotFound());
            }
            ClearanceCode.Validate(command.Code, command.Description);
            var clearances = _clearanceRepository.FindByExternal(command.Code).ToList();

            //No duplicate clearance code
            if (clearances.Count != 0 && (clearances.Count != 1 || clearances[0].Id != id))
            {
                return(this.Error().InvalidParameters("Clearance code already exists"));
            }

            MapTo(command, ref clearancecode);
            _clearanceRepository.Add(clearancecode);
            _clearanceRepository.SaveChanges();

            return(Ok(_mapper.Map <ClearanceCodeModel>(clearancecode)));
        }
Esempio n. 2
0
 public void Add(ClearanceCode item)
 {
     lock (_session)
     {
         _session.Store(item);
     }
 }
Esempio n. 3
0
        private void ValidateForSave(List <ClearanceCode> clearanceCodes)
        {
            clearanceCodes.ForEach(c => ClearanceCode.Validate(c.Code, c.Description));

            var clearanceInDb = _clearanceRepository.FindByExternal(clearanceCodes.Select(c => c.Code)?.ToList())?.ToList();

            if (clearanceInDb != null && clearanceInDb.Any())
            {
                var msg = "Clearances code already exists: " +
                          string.Join(",", clearanceInDb.Select(c => c.Code)?.Distinct().ToList());
                throw new InvalidDataException(msg);
            }
        }
Esempio n. 4
0
        public void Add(ClearanceCode item)
        {
            var entity = _dbContext.Find <Entities.Tenant.ClearanceCode>(
                (item ?? throw new ArgumentNullException(nameof(item))).Id);

            if (entity == null)
            {
                _dbContext.Add(_mapper.Map <Entities.Tenant.ClearanceCode>(item), post => post.MapTo(item), _mapper);
            }
            else
            {
                _mapper.Map(item, entity);
                _dbContext.Update(entity, post => post.MapTo(item), _mapper);
            }
        }
Esempio n. 5
0
        private IEnumerable <Restriction> BuildRestrictionFixtures(SalesArea salesArea, ClearanceCode clearanceCode, int count)
        {
            var restrictions = Fixture.Build <Restriction>()
                               .Without(p => p.SalesAreas)
                               .Without(p => p.ClearanceCode)
                               .Without(p => p.RestrictionDays)
                               .Without(p => p.StartDate)
                               .Without(p => p.EndDate)
                               .Without(p => p.ClashCode)
                               .Without(p => p.ProductCode)
                               .Without(p => p.ClockNumber)
                               .Without(p => p.ExternalProgRef)
                               .Without(p => p.ProgrammeCategory)
                               .Without(p => p.ProgrammeClassification)
                               .Without(p => p.RestrictionBasis)
                               .Without(p => p.RestrictionType)
                               .Without(p => p.IndexType)
                               .Without(p => p.IndexThreshold)
                               .Do(p =>
            {
                p.SalesAreas = new List <string>();
                p.SalesAreas.ToList().Add(salesArea.Name);
                p.ClearanceCode           = clearanceCode.Code;
                p.RestrictionDays         = "1111111";
                p.StartDate               = Fixture.Create <DateTime>();
                p.EndDate                 = p.StartDate.AddDays(1);
                p.ProductCode             = 0;
                p.ClockNumber             = string.Empty;
                p.ProgrammeCategory       = string.Empty;
                p.RestrictionBasis        = RestrictionBasis.ClearanceCode;
                p.RestrictionType         = RestrictionType.Time;
                p.ProgrammeClassification = string.Empty;
                p.IndexType               = 0;
                p.IndexThreshold          = 0;
            }).CreateMany(count);

            return(restrictions);
        }
Esempio n. 6
0
 private void MapTo(CreateClearanceCode command, ref ClearanceCode clearancecode)
 {
     clearancecode.Description = command.Description;
     clearancecode.Code        = command.Code;
 }