Пример #1
0
        public int CreateCarpool(CarpoolCreationRequestDto carpool)
        {
            var addressObj = _addressDetails.Get(
                carpool.Address.StreetNumber,
                carpool.Address.City,
                carpool.Address.State,
                carpool.Address.ZipCode);

            if (addressObj == null)
            {
                addressObj = new Address
                {
                    StreetNumber = carpool.Address.StreetNumber,
                    City         = carpool.Address.City,
                    State        = carpool.Address.State,
                    ZipCode      = carpool.Address.ZipCode,
                };

                _addressDetails.Add(addressObj);
            }

            var campusObj = _campusDetails.Get(carpool.CampusName);

            if (campusObj == null)
            {
                campusObj = new Campus
                {
                    Address = addressObj,
                    Name    = carpool.CampusName,
                };

                _campusDetails.Add(campusObj);
            }

            var newCarpool = new Carpool
            {
                Campus       = campusObj,
                Certificates = new List <Certificate>
                {
                    new Certificate
                    {
                        CreateDate    = DateTime.Now,
                        ExpiryDate    = DateTime.Now.AddDays(365),
                        IncentiveType = _carpoolDetails.GetIncentiveType(carpool.IncentiveId),
                    }
                }
            };

            _carpoolDetails.AddCarpool(newCarpool);

            var owner    = _userDetails.GetUserModel(carpool.UserEmail);
            var userType = _userDetails.GetUserType("Carpool Owner");

            owner.UserType = userType;
            owner.Carpool  = newCarpool;
            _userDetails.Update(owner);
            return(newCarpool.Id);
        }
Пример #2
0
        public IActionResult Post([FromBody] CarpoolCreationRequestDto carpool)
        {
            var user = User.Identity.Name;

            if (!user.Equals(carpool.UserEmail, StringComparison.InvariantCultureIgnoreCase))
            {
                return(Unauthorized());
            }

            // Do some basic input sanitization
            carpool.Address.State = carpool.Address.State.ToUpper();

            if (!Int32.TryParse(carpool.Address.ZipCode, out var test))
            {
                throw new ArgumentException("Only US zipcodes are supported, which are always numbers", "ZipCode");
            }

            return(Ok(_carpoolService.CreateCarpool(carpool)));
        }