public void UpdateAddress(Address address)
        {
            //var addressToUpdate = _db.Addresses.FirstOrDefault(a => a.Id == address.Id);

            var addressToUpdate     = _db.Addresses.Find(address.Id);
            var addressBeforeUpdate = DtoHelper.CreateAddressDto(addressToUpdate);

            try
            {
                addressToUpdate.Active           = address.Active;
                addressToUpdate.AddressLineOne   = address.AddressLineOne;
                addressToUpdate.AddressLineTwo   = address.AddressLineTwo;
                addressToUpdate.AddressLineThree = address.AddressLineThree;
                addressToUpdate.AddressLineFour  = address.AddressLineFour;
                addressToUpdate.City             = address.City;
                addressToUpdate.Country          = address.Country;
                addressToUpdate.RegionCounty     = address.RegionCounty;
                addressToUpdate.Postcode         = address.Postcode;
                addressToUpdate.Version          = addressToUpdate.Version + 1;
                addressToUpdate.Level            = address.Level;
                addressToUpdate.DeliveryNote     = address.DeliveryNote;

                _db.SaveChanges();
                //_unitOfWork.Complete();

                _mongoMongoLogger.SuccessfulUpdateServerLog(HttpContext.Current.User, addressBeforeUpdate, addressToUpdate);
            }
            catch (Exception ex)
            {
                _mongoMongoLogger.FailedUpdateServerLog <Exception, object, object>(HttpContext.Current.User, ex.Message, ex.InnerException, address);
            }
        }
예제 #2
0
        public IHttpActionResult AddAddress(Address newAddress)
        {
            if (Equals(newAddress, null))
            {
                return(BadRequest());
            }

            try
            {
                newAddress.Version = 1;
                newAddress.Country = "GBR";
                newAddress.Active  = true;
                _unitOfWork.Addresses.Add(newAddress);
                _unitOfWork.Complete();

                _logger.SuccessfullyAddedServerLog(HttpContext.Current.User, DtoHelper.CreateAddressDto(newAddress));

                return(Ok(newAddress));
            }
            catch (Exception ex)
            {
                _logger.FailedToCreateServerLog <Exception, object>(HttpContext.Current.User, ex.Message, ex.InnerException);

                return(InternalServerError());
            }
        }
예제 #3
0
        public IHttpActionResult GetAddress(int id)
        {
            var address = _unitOfWork.Addresses.FindSingle(a => a.Id == id);

            if (Equals(address, null))
            {
                return(NotFound());
            }

            return(Ok(DtoHelper.CreateAddressDto(address)));
        }
예제 #4
0
        public IHttpActionResult GetAddress(string gln)
        {
            var glnToFind = _unitOfWork.Glns.FindSingle(g => g.OwnGln == gln);

            var address = _unitOfWork.Addresses.FindSingle(a => a.Id == glnToFind.AddressId);

            if (Equals(address, null))
            {
                return(NotFound());
            }

            return(Ok(DtoHelper.CreateAddressDto(address)));
        }
예제 #5
0
        public IHttpActionResult UpdateAddress(Address address)
        {
            if (Equals(address, null))
            {
                return(BadRequest());
            }

            var addressToUpdate = _unitOfWork.Addresses.FindSingle(a => a.Id == address.Id);

            if (Equals(addressToUpdate, null))
            {
                return(NotFound());
            }

            if (!ConcurrencyChecker.canSaveChanges(address.Version, addressToUpdate.Version))
            {
                _logger.ConcurrenyServerLog <object, object>(HttpContext.Current.User, address);
                return(Conflict());
            }

            var addressBeforeUpdate = DtoHelper.CreateAddressDto(address);

            try
            {
                addressToUpdate.Active           = address.Active;
                addressToUpdate.AddressLineOne   = address.AddressLineOne;
                addressToUpdate.AddressLineTwo   = address.AddressLineTwo;
                addressToUpdate.AddressLineThree = address.AddressLineThree;
                addressToUpdate.AddressLineFour  = address.AddressLineFour;
                addressToUpdate.City             = address.City;
                addressToUpdate.Country          = address.Country;
                addressToUpdate.RegionCounty     = address.RegionCounty;
                addressToUpdate.Postcode         = address.Postcode;
                addressToUpdate.Version          = addressToUpdate.Version + 1;
                addressToUpdate.Level            = address.Level;
                addressToUpdate.DeliveryNote     = address.DeliveryNote;

                _unitOfWork.Complete();

                _logger.SuccessfulUpdateServerLog(HttpContext.Current.User, addressBeforeUpdate, DtoHelper.CreateAddressDto(addressToUpdate));
            }
            catch (Exception ex)
            {
                _logger.FailedUpdateServerLog <Exception, object, object>(HttpContext.Current.User, ex.Message, ex.InnerException, DtoHelper.CreateAddressDto(address));
            }

            return(Ok(DtoHelper.CreateAddressDto(addressToUpdate)));
        }
예제 #6
0
        public IHttpActionResult DeactivateAddress(int deactivateId, int replacementId)
        {
            if (deactivateId <= 0 || replacementId <= 0)
            {
                return(BadRequest());
            }

            var toDeactivate = _unitOfWork.Addresses.FindSingle(a => a.Id == deactivateId);
            var toReplace    = _unitOfWork.Addresses.FindSingle(a => a.Id == replacementId);

            if (Equals(toDeactivate, null) || Equals(toReplace, null))
            {
                return(BadRequest());
            }

            toDeactivate.Active = false;
            toReplace.Active    = true;

            var glnsToUpdate = _unitOfWork.Glns.Find(gln => gln.AddressId == deactivateId).ToList();

            if (!Equals(glnsToUpdate, null))
            {
                glnsToUpdate.ForEach(bc => bc.AddressId = replacementId);
            }

            try
            {
                _unitOfWork.Complete();

                _logger.SuccessfulUpdateServerLog(HttpContext.Current.User, DtoHelper.CreateAddressDto(toDeactivate), DtoHelper.CreateAddressDto(toReplace));

                var updatedDeactivatedAddress = _unitOfWork.Addresses.FindSingle(a => a.Id == deactivateId);

                return(Ok(updatedDeactivatedAddress));
            }
            catch (Exception ex)
            {
                _logger.FailedUpdateServerLog(HttpContext.Current.User, ex.Message, ex.InnerException, $"Attempt to deactivate Address with Id: {deactivateId}", $"Supplied replacement Address Id: {replacementId}");

                return(InternalServerError());
            }
        }
        public HttpStatusCode DeactivateAddress(int deactivateId, int replacementId)
        {
            var toDeactivate = _db.Addresses.SingleOrDefault(pc => pc.Id == deactivateId);
            var toReplace    = _db.Addresses.SingleOrDefault(pc => pc.Id == replacementId);

            if (Equals(toDeactivate, null) || Equals(toReplace, null))
            {
                return(HttpStatusCode.BadRequest);
            }

            toDeactivate.Active = false;
            toReplace.Active    = true;

            var barcodesToUpdate = _db.Glns.Where(bc => bc.AddressId == deactivateId).ToList();

            if (!Equals(barcodesToUpdate, null))
            {
                barcodesToUpdate.ForEach(bc => bc.AddressId = replacementId);
            }

            toDeactivate.Active = false;

            try
            {
                _db.SaveChanges();

                _mongoMongoLogger.SuccessfulUpdateServerLog(HttpContext.Current.User, DtoHelper.CreateAddressDto(toDeactivate), DtoHelper.CreateAddressDto(toReplace));

                return(HttpStatusCode.OK);
            }
            catch (Exception ex)
            {
                _mongoMongoLogger.FailedUpdateServerLog(HttpContext.Current.User, ex.Message, ex.InnerException, $"Attempt to deactivate Address with Id: {deactivateId}", $"Supplied replacement Address Id: {replacementId}");

                return(HttpStatusCode.InternalServerError);
            }
        }
        public Address AddAddress(Address newAddress)
        {
            try
            {
                newAddress.Version = 1;
                newAddress.Country = "GBR";
                newAddress.Active  = true;
                _db.Addresses.Add(newAddress);
                _db.SaveChanges();

                _mongoMongoLogger.SuccessfullyAddedServerLog(HttpContext.Current.User, DtoHelper.CreateAddressDto(newAddress));

                return(newAddress);
            }
            catch (Exception ex)
            {
                _mongoMongoLogger.FailedToCreateServerLog <Exception, object>(HttpContext.Current.User, ex.Message, ex.InnerException);

                return(newAddress);
            }
        }