Example #1
0
        public static bool UpdateLeagueFromMobile(LeagueBase leagueToUpdate)
        {
            try
            {
                var dc = new ManagementContext();
                var league = dc.Leagues.Include("ContactCard").Where(x => x.LeagueId == leagueToUpdate.LeagueId).FirstOrDefault();
                league.Name = leagueToUpdate.Name;
                league.WebSite = leagueToUpdate.Website;
                league.Twitter = leagueToUpdate.Twitter;
                league.Instagram = leagueToUpdate.Instagram;
                league.Facebook = leagueToUpdate.Facebook;
                league.RuleSetsPlayedEnum = (long)leagueToUpdate.RuleSetsPlayedEnum;
                league.CultureLCID = leagueToUpdate.CultureSelected;

                if (leagueToUpdate.Founded != null && leagueToUpdate.Founded != new DateTime() && leagueToUpdate.Founded > DateTime.UtcNow.AddYears(-100))
                    league.Founded = leagueToUpdate.Founded;

                var emailDb = league.ContactCard.Emails.Where(x => x.IsDefault == true).FirstOrDefault();
                if (emailDb != null)
                {
                    emailDb.EmailAddress = leagueToUpdate.Email;
                }
                else
                {
                    Email em = new Email();
                    em.ContactCard = league.ContactCard;
                    em.EmailAddress = leagueToUpdate.Email;
                    em.IsDefault = true;
                    league.ContactCard.Emails.Add(em);
                }
                //int numberType = Convert.ToInt32(CommunicationTypeEnum.PhoneNumber);
                var phone = league.ContactCard.Communications.Where(x => x.CommunicationTypeEnum == (byte)CommunicationTypeEnum.PhoneNumber).FirstOrDefault();
                if (phone != null)
                    phone.Data = leagueToUpdate.PhoneNumber;
                else
                {
                    Communication com = new Communication();
                    com.Data = leagueToUpdate.PhoneNumber;
                    //com.CommunicationType = dc.CommunicationType.Where(x => x.CommunicationTypeId == numberType).FirstOrDefault();
                    com.CommunicationTypeEnum = (byte)CommunicationTypeEnum.PhoneNumber;
                    com.ContactCard = league.ContactCard;
                    com.IsDefault = true;
                    league.ContactCard.Communications.Add(com);
                }

                var addresses = league.ContactCard.Addresses.Where(x => x.IsDefault == true).FirstOrDefault();
                if (addresses == null)
                    if (league.ContactCard.Addresses.Count > 0)
                        addresses = league.ContactCard.Addresses.FirstOrDefault();
                if (addresses == null)
                {
                    addresses = new Address();
                    addresses.ContactCard = league.ContactCard;
                }
                addresses.CityRaw = leagueToUpdate.City;
                addresses.StateRaw = leagueToUpdate.State;
                addresses.Zip = leagueToUpdate.ZipCode;

                var countryDb = dc.Countries.Where(x => x.Name.ToLower() == leagueToUpdate.Country.ToLower()).FirstOrDefault();
                if (countryDb == null)
                    countryDb = dc.Countries.Where(x => x.Code.ToLower() == leagueToUpdate.Country.ToLower()).FirstOrDefault();
                addresses.Country = countryDb;
                var coords = OpenStreetMap.FindLatLongOfAddress(addresses.Address1, addresses.Address2, addresses.Zip, addresses.CityRaw, addresses.StateRaw, addresses.Country != null ? addresses.Country.Name : string.Empty);
                if (coords != null)
                {
                    addresses.Coords = new System.Device.Location.GeoCoordinate();
                    addresses.Coords.Latitude = coords.Latitude;
                    addresses.Coords.Longitude = coords.Longitude;
                    addresses.Coords.Altitude = 0;
                    addresses.Coords.Course = 0;
                    addresses.Coords.HorizontalAccuracy = 1;
                    addresses.Coords.Speed = 0;
                    addresses.Coords.VerticalAccuracy = 1;
                }
                addresses.IsDefault = true;


                int c = dc.SaveChanges();
                return c > 0;
            }
            catch (Exception exception)
            {
                ErrorDatabaseManager.AddException(exception, exception.GetType());
            }
            return false;
        }
Example #2
0
        /// <summary>
        /// updates the leagues basic information basically coming from a new user registering a new league.
        /// </summary>
        /// <param name="leagueId"></param>
        /// <param name="leagueName"></param>
        /// <param name="emailOfLeague"></param>
        /// <param name="phoneNumber"></param>
        /// <param name="city"></param>
        /// <param name="country"></param>

        /// <param name="state"></param>
        /// <param name="timezone"></param>
        public static bool UpdateLeagueForOwner(Guid leagueId, string leagueName, string emailOfLeague, string phoneNumber, string city, int country, string state, double timezone)
        {
            try
            {
                var dc = new ManagementContext();
                var league = dc.Leagues.Include("Owners").Include("Teams").Include("Members").Include("ContactCard").Where(x => x.LeagueId == leagueId).FirstOrDefault();
                league.Name = leagueName;
                league.SubscriptionPeriodEnds = DateTime.UtcNow.AddDays(InvoiceSubscription.NUMBER_OF_DAYS_FOR_TRIAL_SUBSCRIPTION);

                var emailDb = league.ContactCard.Emails.Where(x => x.IsDefault == true).FirstOrDefault();
                if (emailDb != null)
                {
                    emailDb.EmailAddress = emailOfLeague;
                }
                else
                {
                    Email em = new Email();
                    em.ContactCard = league.ContactCard;
                    em.EmailAddress = emailOfLeague;
                    em.IsDefault = true;
                }
                var addresses = league.ContactCard.Addresses.Where(x => x.IsDefault == true).FirstOrDefault();
                if (addresses != null)
                {
                    addresses.CityRaw = city;
                    addresses.StateRaw = state;
                    var countryDb = dc.Countries.Where(x => x.CountryId == country).FirstOrDefault();
                    addresses.Country = countryDb;
                    addresses.TimeZone = timezone;
                    var coords = OpenStreetMap.FindLatLongOfAddress(addresses.Address1, addresses.Address2, addresses.Zip, addresses.CityRaw, addresses.StateRaw, addresses.Country != null ? addresses.Country.Name : string.Empty);
                    if (coords != null)
                    {
                        addresses.Coords = new System.Device.Location.GeoCoordinate();
                        addresses.Coords.Latitude = coords.Latitude;
                        addresses.Coords.Longitude = coords.Longitude;
                        addresses.Coords.Altitude = 0;
                        addresses.Coords.Course = 0;
                        addresses.Coords.HorizontalAccuracy = 1;
                        addresses.Coords.Speed = 0;
                        addresses.Coords.VerticalAccuracy = 1;
                    }
                }
                else if (league.ContactCard.Addresses.Count > 0)
                {
                    addresses = league.ContactCard.Addresses.FirstOrDefault();
                    addresses.CityRaw = city;
                    addresses.StateRaw = state;
                    var countryDb = dc.Countries.Where(x => x.CountryId == country).FirstOrDefault();
                    addresses.Country = countryDb;
                    addresses.TimeZone = timezone;
                    addresses.IsDefault = true;
                    var coords = OpenStreetMap.FindLatLongOfAddress(addresses.Address1, addresses.Address2, addresses.Zip, addresses.CityRaw, addresses.StateRaw, addresses.Country != null ? addresses.Country.Name : string.Empty);
                    if (coords != null)
                    {
                        addresses.Coords = new System.Device.Location.GeoCoordinate();
                        addresses.Coords.Latitude = coords.Latitude;
                        addresses.Coords.Longitude = coords.Longitude;
                        addresses.Coords.Altitude = 0;
                        addresses.Coords.Course = 0;
                        addresses.Coords.HorizontalAccuracy = 1;
                        addresses.Coords.Speed = 0;
                        addresses.Coords.VerticalAccuracy = 1;
                    }
                }
                else
                {
                    Address add = new Address();
                    add.IsDefault = true;
                    add.CityRaw = city;
                    add.StateRaw = state;
                    var countryDb = dc.Countries.Where(x => x.CountryId == country).FirstOrDefault();
                    add.Country = countryDb;
                    add.TimeZone = timezone;
                    add.IsDefault = true;
                    var coords = OpenStreetMap.FindLatLongOfAddress(addresses.Address1, addresses.Address2, addresses.Zip, addresses.CityRaw, addresses.StateRaw, addresses.Country != null ? addresses.Country.Name : string.Empty);
                    if (coords != null)
                    {
                        add.Coords = new System.Device.Location.GeoCoordinate();
                        add.Coords.Latitude = coords.Latitude;
                        add.Coords.Longitude = coords.Longitude;
                        add.Coords.Altitude = 0;
                        add.Coords.Course = 0;
                        add.Coords.HorizontalAccuracy = 1;
                        add.Coords.Speed = 0;
                        add.Coords.VerticalAccuracy = 1;
                    }
                    add.ContactCard = league.ContactCard;
                }
                var member = RDN.Library.Classes.Account.User.GetMember();

                var emailData = new Dictionary<string, string>
                                        {
                                            { "name", leagueName },
                                            { "leagueId", leagueId.ToString() },
                                            { "email", emailOfLeague },
                                            { "phone", phoneNumber },
                                            { "country", country.ToString() },
                                            { "memberId", member.MemberId.ToString() },
                                            { "memberName", member.DerbyName}
                                          };
                EmailServer.EmailServer.SendEmail(ServerConfig.DEFAULT_EMAIL, ServerConfig.DEFAULT_EMAIL_FROM_NAME, ServerConfig.DEFAULT_INFO_EMAIL, EmailServer.EmailServer.DEFAULT_SUBJECT + " A league has found its owner", emailData, layout: EmailServer.EmailServerLayoutsEnum.OwnershipTakenOfLeague);


                dc.SaveChanges();
                return true;
            }
            catch (Exception exception)
            {
                ErrorDatabaseManager.AddException(exception, exception.GetType());
            }
            return false;
        }
Example #3
0
        /// <summary>
        /// Verifies that the code and email that was sent to the user matches the database entries.
        /// </summary>
        /// <param name="emailVerificationCode"></param>
        /// <param name="email"></param>
        /// <returns></returns>
        public static List<VerifyEmailEnum> VerifyEmailVerification(string emailVerificationCode, string ip)
        {
            // Validate that the code and email are correct
            var output = new List<VerifyEmailEnum>();
            try
            {
                Guid verificationCode;
                var isCodeGuid = Guid.TryParse(emailVerificationCode, out verificationCode);
                if (!isCodeGuid)
                    output.Add(VerifyEmailEnum.Code_Invalid);

                // Something was wrong, return
                if (output.Count > 0)
                    return output;

                // Try to get the post from the database using the specified code and email
                var dc = new ManagementContext();
                var record = dc.EmailVerifications.Include("Member").FirstOrDefault(x => x.VerificationId.Equals(verificationCode));
                if (record == null) // No post found, return
                {
                    output.Add(VerifyEmailEnum.Code_Email_Invalid);
                    return output;
                }
                var memberId = record.Member.MemberId;

                var memberEmail = new RDN.Library.DataModels.ContactCard.Email
                                      {
                                          ContactCard = record.Member.ContactCard,
                                          EmailAddress = record.EmailAddress,
                                          IsDefault = true
                                      };

                // Set all (current) emails default to false. Default means that this is this member primary contact email.
                var emails = record.Member.ContactCard.Emails.Where(x => x.IsDefault.Equals(true));
                foreach (var emailObj in emails)
                    emailObj.IsDefault = false;

                // Add the new email and also verify the member if the member is unverified
                record.Member.ContactCard.Emails.Add(memberEmail);
                record.Member.IsVerified = true;

                // Remove the verification email
                dc.EmailVerifications.Remove(record);

                var result = dc.SaveChanges();
                if (result == 0)
                {
                    output.Add(VerifyEmailEnum.Error_Save);
                }

            }
            catch (Exception exception)
            {
                ErrorDatabaseManager.AddException(exception, exception.GetType());
            }
            return output;
        }