Example #1
0
 public UsersReport(PUserProfileDto model, string PAgency)
 {
     Name    = model.FirstName + " " + model.LastName;
     Agency  = model.Agency;
     Mobile  = model.PhoneNumber;
     Email   = model.Email;
     Balance = model.Balance;
     Parent  = PAgency;
 }
        public async Task <IHttpActionResult> UpdateProfile(PUserProfileDto model)
        {
            var messages = new Messages();
            ObjectDto <string> result = new ObjectDto <string>();

            if (String.IsNullOrEmpty(model.PanCard) || String.IsNullOrEmpty(model.LastName) || String.IsNullOrEmpty(model.FirstName) ||
                String.IsNullOrEmpty(model.Country) || String.IsNullOrEmpty(model.State) || String.IsNullOrEmpty(model.City))
            {
                messages.Message = "*All fields are required";
                result.messages.Add(messages);
            }
            else
            {
                try
                {
                    model.LastModifiedDate = TimeZoneInfo.ConvertTime(DateTime.Now, TimeZoneInfo.FindSystemTimeZoneById("India Standard Time"));
                    using (var context = new ApplicationDbContext())
                    {
                        var user = await context.PUserProfile.FindAsync(model.UserId);

                        user.BirthDate = model.BirthDate;
                        user.City      = model.City;
                        user.Country   = model.Country;
                        user.FirstName = model.FirstName;
                        user.Gender    = model.Gender;
                        user.LastName  = model.LastName;
                        user.PanCard   = model.PanCard;
                        user.State     = model.State;
                        user.GST       = model.GST;

                        context.Entry(user).State = EntityState.Modified;
                        int i = await context.SaveChangesAsync();

                        if (i == 0)
                        {
                            messages.Message = "Internal Server Error";
                            result.messages.Add(messages);
                        }
                        else
                        {
                            messages.Message = "Your profile has updated successfully";
                            messages.Type    = Toaster.SUCCESS.ToString();
                            result.messages.Add(messages);
                            result.valid = true;
                        }
                    }
                }
                catch (Exception e)
                {
                    messages.Message = e.Message + " " + e.GetBaseException();
                    result.messages.Add(messages);
                }
            }
            return(Ok(result));
        }
Example #3
0
 public UserCasesViewModel(UserCasesDto model, PUserProfileDto user)
 {
     Id            = model.Id;
     ReferenceNo   = (ReferenceIdHelper.getRefId((ServiceType)model.ServiceTypeId)) + model.TransactionId;
     Date          = model.CreatedDate;
     Issue         = ((UserCaseReason)model.Issue).ToString().Replace("_", " ");
     Refund        = model.Refund;
     Charged       = model.Charged;
     Remarks       = model.Remarks;
     Status        = ((UserCasesStatus)model.Status).ToString();
     Severity      = ((Severity)model.Severity).ToString();
     Agency        = user.Agency;
     PhoneNo       = user.PhoneNumber;
     TransactionId = model.TransactionId;
 }
        public static AuthenticationProperties CreateProperties(ApplicationUser userApp)
        {
            var            user     = new PUserProfileDto();
            var            userName = userApp.UserName;
            string         userId   = userApp.Id;
            var            roleId   = userApp.Roles.FirstOrDefault(x => x.UserId == userId).RoleId;
            var            role     = "";
            IList <string> services = new List <string>();

            if (!String.IsNullOrEmpty(userId))
            {
                using (var con = new ApplicationDbContext())
                {
                    user = con.PUserProfile.Find(userId);
                    role = con.Roles.FirstOrDefault(x => x.Id == roleId).Name;
                    var plan = con.PUserRegistrationPlans.Find(user.PlanId);
                    if (plan != null)
                    {
                        if (plan.Rail)
                        {
                            services.Add("Rail");
                        }
                        if (plan.Recharge)
                        {
                            services.Add("Recharge");
                        }
                        if (plan.Flight)
                        {
                            services.Add("Flight");
                        }
                        if (plan.DMR)
                        {
                            services.Add("DMR");
                        }
                    }
                }
            }
            IDictionary <string, string> data = new Dictionary <string, string>
            {
                { "userName", userName },
                { "user", JsonConvert.SerializeObject(user) },
                { "role", role },
                { "services", JsonConvert.SerializeObject(services) }
            };

            return(new AuthenticationProperties(data));
        }
 public FlightReport(PFlightDto model, PUserProfileDto user)
 {
     Id          = model.Id;
     CreatedDate = model.CreatedDate;
     Origin      = model.Origin;
     Destination = model.Destination;
     Trip        = model.Type;
     DOJ         = model.DOJ;
     Status      = ((StatusFlag)model.Status).ToString();
     Markup      = model.Markup;
     GrossAmount = model.GrossAmount;
     Commission  = model.Commission;
     Agency      = user.Agency;
     ContactNo   = user.PhoneNumber;
     Email       = user.Email;
     Address     = user.City + ", " + user.State;
 }
        public async Task <IHttpActionResult> RegisterUser(UserProfile model)
        {
            var messages             = new Messages();
            ObjectDto <decimal> data = new ObjectDto <decimal>();

            try
            {
                decimal balance = 0;
                var     UId     = User.Identity.GetUserId();
                using (var con = new ApplicationDbContext())
                {
                    var usedPhoneNumber = con.Users.FirstOrDefault(x => x.PhoneNumber == model.PhoneNumber);
                    if (usedPhoneNumber != null)
                    {
                        var message = new Messages();
                        message.Message = "*Phone Number '" + model.PhoneNumber + "' is already taken.";
                        data.messages.Add(message);
                        return(Ok(data));
                    }
                    var plan = await con.PUserRegistrationPlans.FindAsync(model.PlanId);

                    var User = await con.PUserProfile.FindAsync(UId);

                    var AId   = System.Configuration.ConfigurationManager.AppSettings.Get("PartnerLoginId");
                    var admin = await con.PUserProfile.FirstOrDefaultAsync(x => x.Email.ToUpper() == AId.ToUpper());

                    if (plan != null)
                    {
                        if (User.Balance < plan.Fee)
                        {
                            var message = new Messages();
                            message.Message = "*Your account balance is low";
                            data.messages.Add(message);
                            return(Ok(data));
                        }
                        User.Balance -= Convert.ToDecimal(plan.Fee);
                        model.Balance = plan.BalanceAmount;
                        var adminBal = Convert.ToDecimal(plan.Fee) - plan.BalanceAmount;
                        User.LastModifiedDate  = TimeZoneInfo.ConvertTime(DateTime.Now, TimeZoneInfo.FindSystemTimeZoneById("India Standard Time"));
                        con.Entry(User).State  = EntityState.Modified;
                        admin.Balance         += adminBal;
                        admin.LastModifiedDate = TimeZoneInfo.ConvertTime(DateTime.Now, TimeZoneInfo.FindSystemTimeZoneById("India Standard Time"));
                        con.Entry(admin).State = EntityState.Modified;
                        if ((await con.SaveChangesAsync()) <= 0)
                        {
                            var message = new Messages();
                            message.Message = "*Internal Server Error";
                            data.messages.Add(message);
                            return(Ok(data));
                        }
                        balance = User.Balance;
                    }
                    model.ParentId = User.Id;
                    model.Password = "******";
                }

                var user = new ApplicationUser()
                {
                    UserName = model.Email, Email = model.Email, PhoneNumber = model.PhoneNumber
                };
                IdentityResult result = await UserManager.CreateAsync(user, model.Password);

                if (!result.Succeeded)
                {
                    //return GetErrorResult(result);
                    foreach (string error in result.Errors)
                    {
                        messages.Message = "*" + error;
                    }
                    data.messages.Add(messages);
                }
                else
                {
                    await UserManager.AddToRoleAsync(user.Id, model.Role);

                    data.valid  = true;
                    data.Object = balance;
                    var Body = "<div style='font-family: Verdana;font-size:12px'>Dear " + model.FirstName + " " + model.LastName + ",";
                    Body += "<br/><br/>Welcome to the Travelothon family. Now access best in class online services.";
                    Body += "<br/><br/>Below are your details:<br/><br/>username: "******"<br/>password: "******"<br/><br/><a href='partner.travelothon.in'>Visit Partner Portal</a>";


                    var Subject = "Welcome to Travelothon";

                    var emailService = new EMail();
                    emailService.SendAsync(new IdentityMessage()
                    {
                        Body        = Body,
                        Subject     = Subject,
                        Destination = model.Email
                    });
                    using (var con = new ApplicationDbContext())
                    {
                        try
                        {
                            var tUserProfile = new PUserProfileDto
                            {
                                Aadhar           = model.Aadhar,
                                Agency           = model.Agency,
                                Balance          = model.Balance,
                                BirthDate        = model.BirthDate,
                                City             = model.City,
                                Country          = model.Country,
                                CreatedDate      = TimeZoneInfo.ConvertTime(DateTime.Now, TimeZoneInfo.FindSystemTimeZoneById("India Standard Time")),
                                LastName         = model.LastName,
                                LastModifiedDate = TimeZoneInfo.ConvertTime(DateTime.Now, TimeZoneInfo.FindSystemTimeZoneById("India Standard Time")),
                                State            = model.State,
                                GST         = model.GST,
                                FirstName   = model.FirstName,
                                Gender      = model.Gender,
                                PanCard     = model.PanCard,
                                ParentId    = model.ParentId,
                                PaymentId   = model.PaymentId,
                                PlanId      = model.PlanId,
                                UserId      = user.Id,
                                Email       = model.Email,
                                PhoneNumber = model.PhoneNumber
                            };
                            con.PUserProfile.Add(tUserProfile);
                            con.SaveChanges();
                        }
                        catch (Exception e)
                        {
                            var dd    = e.Message + e.GetBaseException();
                            var error = e.Message + "\n" + e.GetBaseException() + "\n" + e.InnerException + "\n" + e.Data;

                            var Destination = System.Configuration.ConfigurationManager.AppSettings.Get("AdminEmail");
                            await emailService.SendAsync(new IdentityMessage()
                            {
                                Body        = error,
                                Subject     = "API:B2B UserRegistration Error,Environment:" + Request.RequestUri.Host.ToString(),
                                Destination = Destination
                            });

                            messages.Message = e.Message;
                            data.messages.Add(messages);
                        }
                    }
                }
            }
            catch (Exception e)
            {
                var dd           = e.Message + e.GetBaseException();
                var error        = e.Message + "\n" + e.GetBaseException() + "\n" + e.InnerException + "\n" + e.Data;
                var emailService = new EMail();

                var Destination = System.Configuration.ConfigurationManager.AppSettings.Get("AdminEmail");
                await emailService.SendAsync(new IdentityMessage()
                {
                    Body        = error,
                    Subject     = "API:B2B UserRegistration Error,Environment:" + Request.RequestUri.Host.ToString(),
                    Destination = Destination
                });

                messages.Message = e.Message;
                data.messages.Add(messages);
            }
            return(Ok(data));
        }
        public async Task <IHttpActionResult> Register(UserProfile model)
        {
            var messages            = new Messages();
            ObjectDto <object> data = new ObjectDto <object>();

            //var isValidEmail = IsValidEmail(model.Email);
            //if (!isValidEmail)
            //{
            //    var message = new Messages();
            //    message.Message = "*Invalid Email Id";
            //    data.messages.Add(message);
            //}
            //var isValidMobileNumber = IsValidMobileNumber(model.PhoneNumber);
            //if (!isValidMobileNumber)
            //{
            //    var message = new Messages();
            //    message.Message = "*Invalid Mobile Number";
            //    data.messages.Add(message);
            //}
            //var isValidPassword = IsValidPassword(model.Password);
            //if (!isValidPassword)
            //{
            //    var message = new Messages();
            //    message.Message = "*Invalid Password";
            //    data.messages.Add(message);
            //}

            //if (data.messages.Count > 0)
            //{
            //    return Ok(data);
            //}
            try
            {
                using (var con = new ApplicationDbContext())
                {
                    var usedPhoneNumber = con.Users.FirstOrDefault(x => x.PhoneNumber == model.PhoneNumber);
                    if (usedPhoneNumber != null)
                    {
                        var message = new Messages();
                        message.Message = "*Phone Number '" + model.PhoneNumber + "' is already taken.";
                        data.messages.Add(message);
                        return(Ok(data));
                    }
                }

                var user = new ApplicationUser()
                {
                    UserName = model.Email, Email = model.Email, PhoneNumber = model.PhoneNumber
                };
                IdentityResult result = await UserManager.CreateAsync(user, model.Password);

                if (!result.Succeeded)
                {
                    //return GetErrorResult(result);
                    foreach (string error in result.Errors)
                    {
                        messages.Message = "*" + error;
                    }
                    data.messages.Add(messages);
                }
                else
                {
                    await UserManager.AddToRoleAsync(user.Id, model.Role);

                    data.valid = true;
                    var Body = "<div style='font-family: Verdana;font-size:12px'>Dear " + model.FirstName + " " + model.LastName + ",";
                    Body += "<br/><br/>Welcome to the Travelothon family. Now access best in class online services.";
                    Body += "<br/><br/>Below are your details:<br/><br/>username: "******"<br/>password: "******"<br/><br/><a href='partner.travelothon.in'>Visit Partner Portal</a>";

                    var Subject = "Welcome to Travelothon";

                    var emailService = new EMail();
                    await emailService.SendAsync(new IdentityMessage()
                    {
                        Body        = Body,
                        Subject     = Subject,
                        Destination = model.Email
                    });

                    using (var con = new ApplicationDbContext())
                    {
                        try
                        {
                            var tUserProfile = new PUserProfileDto
                            {
                                Aadhar           = model.Aadhar,
                                Agency           = model.Agency,
                                Balance          = 0,
                                BirthDate        = model.BirthDate,
                                City             = model.City,
                                Country          = model.Country,
                                CreatedDate      = TimeZoneInfo.ConvertTime(DateTime.Now, TimeZoneInfo.FindSystemTimeZoneById("India Standard Time")),
                                LastName         = model.LastName,
                                LastModifiedDate = TimeZoneInfo.ConvertTime(DateTime.Now, TimeZoneInfo.FindSystemTimeZoneById("India Standard Time")),
                                State            = model.State,
                                GST         = model.GST,
                                FirstName   = model.FirstName,
                                Gender      = model.Gender,
                                PanCard     = model.PanCard,
                                ParentId    = model.ParentId,
                                PaymentId   = model.PaymentId,
                                PlanId      = model.PlanId,
                                UserId      = user.Id,
                                Email       = model.Email,
                                PhoneNumber = model.PhoneNumber
                            };
                            con.PUserProfile.Add(tUserProfile);
                            con.SaveChanges();
                        }
                        catch (Exception e)
                        {
                            var error = e.Message + "\n" + e.GetBaseException() + "\n" + e.InnerException + "\n" + e.Data;

                            var Destination = System.Configuration.ConfigurationManager.AppSettings.Get("AdminEmail");
                            emailService.SendAsync(new IdentityMessage()
                            {
                                Body        = error,
                                Subject     = "API:B2B UserRegistration Error.Environment " + Request.RequestUri.Host.ToString(),
                                Destination = Destination
                            });
                            messages.Message = e.Message;
                            data.messages.Add(messages);
                        }
                    }
                }
            }
            catch (Exception e)
            {
                var emailService = new EMail();
                var Destination  = System.Configuration.ConfigurationManager.AppSettings.Get("AdminEmail");
                await emailService.SendAsync(new IdentityMessage()
                {
                    Body        = e.Message + " " + e.GetBaseException() + e.InnerException + "\n" + e.Data,
                    Subject     = "B2B User Registration Error. Environment: " + Request.RequestUri.Host.ToString(),
                    Destination = Destination
                });

                data.messages.Add(new Messages
                {
                    Message = e.Message
                });
            }
            return(Ok(data));
        }