Esempio n. 1
0
        public IActionResult Create([FromBody] WhatsInTheBagTo value)
        {
            if (value == null)
            {
                return(BadRequest("Data model could not be null"));
            }

            var cdmItem = new WhatsInTheBag();

            cdmItem.ClubShaftFlexId      = value.ClubShaftFlexId;
            cdmItem.ClubLoftId           = value.ClubLoftId;
            cdmItem.FaceLieAdjustmentId  = value.FaceLieAdjustmentId;
            cdmItem.FaceLoftAdjustmentId = value.FaceLoftAdjustmentId;
            cdmItem.Created            = DateTime.UtcNow;
            cdmItem.ClubCategoryId     = value.CategoryId;
            cdmItem.BrandId            = value.BrandId;
            cdmItem.ClubCategoryTypeId = value.ClubCategoryTypeId;
            cdmItem.ModelId            = value.ModelId;
            cdmItem.PlanToPurchase     = value.PlanningToPurchase;
            cdmItem.ClubShaftLengthId  = value.ClubShaftLengthId;
            cdmItem.Sku = value.Sku;

            var consumer = _repository.Query <Consumer>().Include(y => y.GolferProfile)
                           .FirstOrDefault(y => y.Id == value.ConsumerId);

            if (consumer == null)
            {
                return(BadRequest("Consumer not found."));
            }

            if (consumer.GolferProfile == null)
            {
                var profile = new GolferProfile();
                profile.Created    = DateTime.UtcNow;
                profile.ConsumerId = consumer.Id.Value;
                _repository.Save(profile);
                cdmItem.GolferProfileId = profile.Id;
            }
            else
            {
                cdmItem.GolferProfileId = consumer.GolferProfile.Id;
            }



            _repository.Save(cdmItem);
            return(Ok(_repository.Query <WhatsInTheBag>().Include(x => x.ClubShaftLength)
                      .Include(x => x.ClubShaftFlex)
                      .Include(x => x.ClubCategoryType)
                      .Include(x => x.FaceLoftAdjustment)
                      .Include(x => x.FaceLieAdjustment)
                      .Include(x => x.ClubLoft)
                      .Include(x => x.ClubCategory)
                      .Include(x => x.Brand)
                      .Include(x => x.Model).FirstOrDefault(x => x.Id == cdmItem.Id)));
        }
Esempio n. 2
0
        public void Migrate()
        {
            try
            {
                _logger.LogInformation("################# Migration of Consumers");
                _sugarDataContext.Database.SetCommandTimeout(600);

                var idsOld             = _repository.Query <MfeUserIds>().Select(x => x.Id).ToList();
                var consumersFromSugar = _sugarDataContext.Query <CConsumers>().OrderByDescending(x => x.DateModified)
                                         .Where(x => idsOld.Contains(x.Id)).AsNoTracking().ToList();
                var sugarGolferProfileAll = _sugarDataContext.Query <CConsumersCstm>()
                                            .Where(x => idsOld.Contains(x.IdC)).AsNoTracking().ToList();
                var countFromSugar = consumersFromSugar.Count();

                var loopCount = countFromSugar / _splitCount;

                _logger.LogInformation("#################Starting Migration of Consumers");
                _logger.LogInformation($"Found {countFromSugar} to migrate");
                var systemId = getSystemId();
                var regionId = _repository.Query <Region>().FirstOrDefault(y => y.Code == "USA").Id.Value;
                for (var x = 0; x < loopCount; x++)
                {
                    var skip = _startCount + (x * _splitCount);
                    if (skip > countFromSugar)
                    {
                        break;
                    }
                    _logger.LogInformation($"Starting segment starting at {skip}");

                    _repository.ReloadContext();
                    _repository.GetDatabase().ChangeTracker.AutoDetectChangesEnabled = false;
                    var sugarItems = consumersFromSugar.Skip(skip).Take(_splitCount).ToList();

                    foreach (var sItem in sugarItems)
                    {
                        if (string.IsNullOrWhiteSpace(sItem.Email))
                        {
                            continue;
                        }


                        var exists = _repository.Query <ConsumerData.Models.Consumer>().Any(y => y.PrimaryEmail.ToLower().Trim() == sItem.Email.ToLower().Trim());

                        if (exists)
                        {
                            continue;
                        }

                        emailsSaved.Add(sItem.Email);

                        var cdmItem = new ConsumerData.Models.Consumer();
                        cdmItem.FirstName    = sItem.Fname;
                        cdmItem.LastName     = sItem.Lname;
                        cdmItem.PrimaryEmail = sItem.Email;
                        cdmItem.Created      = sItem.DateEntered ?? DateTime.UtcNow;
                        cdmItem.Modified     = sItem.DateModified ?? DateTime.UtcNow;
                        cdmItem.Dob          = sItem.Dob;
                        cdmItem.Gender       = sItem.Gender;
                        try
                        {
                            var consumerProfile = new ConsumerProfile
                            {
                                RegionId  = regionId,
                                PhoneHome = sItem.Phonehm,
                                PhoneCell = sItem.Phonemb,
                                Notes     = sItem.Description,
                                Created   = sItem.DateEntered ?? DateTime.UtcNow
                            };

                            if (sItem.AddressPostalcode != null)
                            {
                                consumerProfile.Address = new Address
                                {
                                    Created      = sItem.DateEntered ?? DateTime.UtcNow,
                                    AddressLine1 = sItem.AddressStreet,
                                    City         = sItem.AddressCity,
                                    State        = sItem.AddressState,
                                    Country      = sItem.AddressCountry ?? "USA",
                                    ZipCode      = sItem.AddressPostalcode,
                                    SystemId     = systemId
                                };
                            }
                            if (consumerProfile.SystemToConsumerProfiles == null)
                            {
                                consumerProfile.SystemToConsumerProfiles = new List <SystemToConsumerProfile>();
                            }

                            if (consumerProfile.SystemToConsumerProfiles.All(y => y.SystemId != systemId))
                            {
                                consumerProfile.SystemToConsumerProfiles.Add(new SystemToConsumerProfile()
                                {
                                    SystemId = systemId, Created = DateTime.UtcNow
                                });
                            }

                            consumerProfile.ConsumerExperiences = new List <ConsumerExperience>();

                            cdmItem.ConsumerProfiles = new List <ConsumerProfile>()
                            {
                                consumerProfile
                            };
                        }
                        catch (Exception e)
                        {
                            _logger.LogError($"broke in comsumer profile create ");

                            if (e.Message != null)
                            {
                                _logger.LogError(e.Message);
                            }
                            _logger.LogError(e.StackTrace);
                            if (e.InnerException != null && e.InnerException.Message != null)
                            {
                                _logger.LogError(e.InnerException.Message);
                            }
                        }
                        try
                        {
                            var sugarGolferProfile = sugarGolferProfileAll.FirstOrDefault(y => y.IdC == sItem.Id);

                            if (sugarGolferProfile != null)
                            {
                                var golferProfile = new GolferProfile();
                                if (!string.IsNullOrEmpty(sugarGolferProfile.HandicapC))
                                {
                                    int handicap = 0;

                                    var wasNumber = int.TryParse(sugarGolferProfile.HandicapC, out handicap);

                                    if (wasNumber)
                                    {
                                        golferProfile.Handicap = handicap;
                                    }
                                }
                                if (!string.IsNullOrEmpty(sugarGolferProfile.DriverLoftC))
                                {
                                    golferProfile.DriverLoftId = _staticTableHelper.GetLoftId(sugarGolferProfile.DriverLoftC);
                                }
                                if (!string.IsNullOrEmpty(sugarGolferProfile.DriverShaftFlexC))
                                {
                                    golferProfile.CurrentDriverFlexId = _staticTableHelper.GetFlexId(sugarGolferProfile.DriverShaftFlexC);
                                }
                                golferProfile.CurrentDriverBallFlight = sugarGolferProfile.CurrentDriverBallFlightC;
                                golferProfile.DesiredDriverBallFlight = sugarGolferProfile.DesiredDriverBallFlightC;
                                golferProfile.TypicalDriverDistance   = sugarGolferProfile.TypicalDriverDistanceC;
                                if (!string.IsNullOrEmpty(sugarGolferProfile.IronLengthC))
                                {
                                    golferProfile.CurrentIronLengthId = _staticTableHelper.GetChaftLengthId(sugarGolferProfile.IronLengthC);
                                }
                                golferProfile.Current7IronBallFlight = sugarGolferProfile.CurrentIronBallFlightC;
                                if (!string.IsNullOrEmpty(sugarGolferProfile.IronLieC))
                                {
                                    golferProfile.CurrentIronLieId = _staticTableHelper.GetLieId(sugarGolferProfile.IronLieC);
                                }
                                golferProfile.Desired7IronBallFlight = sugarGolferProfile.DesiredIronBallFlightC;
                                golferProfile.Typical7IronDistance   = sugarGolferProfile.TypicalIronDistanceC;
                                golferProfile.Created = DateTime.UtcNow;
                                int rpms = 0;
                                int.TryParse(sItem.Rpm, out rpms);
                                golferProfile.RoundsPerMonth = rpms;


                                if (!string.IsNullOrEmpty(sItem.Dexterity))
                                {
                                    golferProfile.ClubHandId = _staticTableHelper.GetClubHandId(sItem.Dexterity);
                                }
                                cdmItem.GolferProfile = golferProfile;
                            }
                        }
                        catch (Exception e)
                        {
                            _logger.LogError($"broke on golfer profile create ");

                            if (e.Message != null)
                            {
                                _logger.LogError(e.Message);
                            }
                            _logger.LogError(e.StackTrace);
                            if (e.InnerException != null && e.InnerException.Message != null)
                            {
                                _logger.LogError(e.InnerException.Message);
                            }
                        }

                        try
                        {
                            _repository.SaveQueue(cdmItem);
                        }
                        catch (Exception e)
                        {
                            _logger.LogError($"failed to save ");
                            if (e.Message != null)
                            {
                                _logger.LogError(e.Message);
                            }
                            _logger.LogError(e.StackTrace);
                            if (e.InnerException != null && e.InnerException.Message != null)
                            {
                                _logger.LogError(e.InnerException.Message);
                            }
                        }
                    }


                    _logger.LogError($"Saving Consumers ");
                    try
                    {
                        _repository.Save();
                    }
                    catch (Exception e)
                    {
                        _logger.LogError($"failed to save ");
                        if (e.Message != null)
                        {
                            _logger.LogError(e.Message);
                        }
                        _logger.LogError(e.StackTrace);
                        if (e.InnerException != null && e.InnerException.Message != null)
                        {
                            _logger.LogError(e.InnerException.Message);
                        }
                    }
                    _logger.LogError($"Saving Consumer");
                }
            }
            catch (Exception e)
            {
                _logger.LogError("failed", e);

                if (e.Message != null)
                {
                    _logger.LogError(e.Message);
                }
                _logger.LogError(e.StackTrace);
                if (e.InnerException != null && e.InnerException.Message != null)
                {
                    _logger.LogError(e.StackTrace);
                }
            }
        }
Esempio n. 3
0
        private static void CreateOrUpdateGolfProfile(ConsumerTo consumerModel, GolferProfile golferProfile, Consumer consumer)
        {
            if (consumerModel.Handicap != null)
            {
                golferProfile.Handicap = consumerModel.Handicap;
            }
            if (consumerModel.DriverLoftId != null)
            {
                golferProfile.DriverLoftId = consumerModel.DriverLoftId;
            }
            if (consumerModel.CurrentDriverFlexId != null)
            {
                golferProfile.CurrentDriverFlexId = consumerModel.CurrentDriverFlexId;
            }
            if (consumerModel.CurrentDriverBallFlight != null)
            {
                golferProfile.CurrentDriverBallFlight = consumerModel.CurrentDriverBallFlight;
            }
            if (consumerModel.DesiredDriverBallFlight != null)
            {
                golferProfile.DesiredDriverBallFlight = consumerModel.DesiredDriverBallFlight;
            }
            if (consumerModel.TypicalDriverDistance != null)
            {
                golferProfile.TypicalDriverDistance = consumerModel.TypicalDriverDistance;
            }
            if (consumerModel.CurrentIronLengthId != null)
            {
                golferProfile.CurrentIronLengthId = consumerModel.CurrentIronLengthId;
            }
            if (consumerModel.Current7IronBallFlight != null)
            {
                golferProfile.Current7IronBallFlight = consumerModel.Current7IronBallFlight;
            }
            if (consumerModel.CurrentIronLieId != null)
            {
                golferProfile.CurrentIronLieId = consumerModel.CurrentIronLieId;
            }
            if (consumerModel.Desired7IronBallFlight != null)
            {
                golferProfile.Desired7IronBallFlight = consumerModel.Desired7IronBallFlight;
            }
            if (consumerModel.Typical7IronDistance != null)
            {
                golferProfile.Typical7IronDistance = consumerModel.Typical7IronDistance;
            }
            if (consumerModel.DesiredDriverFlexId != null)
            {
                golferProfile.DesiredDriverFlexId = consumerModel.DesiredDriverFlexId;
            }
            if (consumerModel.Rpm != null)
            {
                golferProfile.RoundsPerMonth = consumerModel.Rpm.Value;
            }
            if (consumerModel.ClubHandId != null)
            {
                golferProfile.ClubHandId = consumerModel.ClubHandId;
            }

            if (!golferProfile.Id.HasValue)
            {
                consumer.GolferProfile = golferProfile;
            }
        }