コード例 #1
0
        public async Task <JsonResult> GetUserById()//(string Id)
        {
            try
            {
                //to get userid from access token
                string Id = User.Claims.First(c => c.Type == "UserID").Value;
                UserDetailsViewModel _userDetails = new UserDetailsViewModel();
                var user = await _userManager.FindByIdAsync(Id);

                var userstatus = user.UserStatus;
                if (user != null)
                {
                    var roles = await _userManager.GetRolesAsync(user);

                    var bussiness = new BussinessDetailViewModel();
                    if (roles[0] == Constants.isAdmin)
                    {
                        //get bussiness details of admin by id
                        bussiness = await _bussinessService.GetBussinessDetailsById(user.Id);
                    }
                    else
                    {
                        //get bussiness details of parent admin if role is subadmin
                        bussiness = await _bussinessService.GetBussinessDetailsById(user.ParentUserId);
                    }
                    _userDetails.Id               = user.Id;
                    _userDetails.Name             = user.Name;
                    _userDetails.Email            = user.Email;
                    _userDetails.PhoneNumber      = user.PhoneNumber;
                    _userDetails.ProfilePic       = user.ProfilePic;
                    _userDetails.Language         = user.Language;
                    _userDetails.UserType         = roles.FirstOrDefault();
                    _userDetails.DeviceToken      = user.DeviceToken;
                    _userDetails.DeviceType       = user.DeviceType;
                    _userDetails.AccessToken      = user.AccessToken;
                    _userDetails.ParentUserId     = user.ParentUserId;
                    _userDetails.UserStatus       = user.UserStatus;
                    _userDetails.IsActive         = user.IsActive;
                    _userDetails.Dob              = user.Dob;
                    _userDetails.Gender           = user.Gender;
                    _userDetails.CreatedDate      = user.CreatedDate;
                    _userDetails.BussinessDetails = bussiness;
                    return(new JsonResult(new { status = StatusCodes.Status200OK, success = true, message = "user profile" + ResponseMessages.msgShownSuccess, userstatus, user_info = _userDetails }));
                }
                return(new JsonResult(new { status = StatusCodes.Status404NotFound, success = false, message = ResponseMessages.msgCouldNotFoundAssociatedUser, userstatus = false }));
            }
            catch (Exception ex)
            {
                return(new JsonResult(new { status = StatusCodes.Status500InternalServerError, success = false, message = ResponseMessages.msgSomethingWentWrong + ex.Message, userstatus = false }));
            }
        }
コード例 #2
0
        public async Task <IActionResult> UpdateAddress(UserAddressViewModel _model)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    //get userid from access token
                    string userId = User.Claims.First(c => c.Type == "UserID").Value;
                    var    user   = await _userManager.FindByIdAsync(userId);

                    var userstatus = user.UserStatus;
                    if (user != null && userstatus)
                    {
                        BussinessDetailViewModel _bussinessmodel = new BussinessDetailViewModel();
                        _bussinessmodel.IdentityId = userId;
                        _bussinessmodel.Address1   = _model.Address1;
                        _bussinessmodel.Address2   = _model.Address2;
                        _bussinessmodel.CountryId  = _model.CountryId;
                        _bussinessmodel.StateId    = _model.StateId;
                        _bussinessmodel.City       = _model.City;
                        _bussinessmodel.Postalcode = _model.Postalcode;
                        bool result = await _bussinessService.UpdateBussinessProfile(_bussinessmodel);

                        if (result)
                        {
                            return(Ok(new { status = StatusCodes.Status200OK, success = true, message = "address" + ResponseMessages.msgUpdationSuccess, userstatus }));
                        }
                        else
                        {
                            return(Ok(new { status = StatusCodes.Status400BadRequest, success = false, message = ResponseMessages.msgDbConnectionError, userstatus = false }));
                        }
                    }
                    else
                    {
                        return(Ok(new { status = StatusCodes.Status404NotFound, success = false, message = ResponseMessages.msgCouldNotFoundAssociatedUser, userstatus = false }));
                    }
                }
                else
                {
                    return(Ok(new { status = StatusCodes.Status406NotAcceptable, success = false, message = ResponseMessages.msgParametersNotCorrect, userstatus = false }));
                }
            }
            catch (Exception ex)
            {
                return(Ok(new { status = StatusCodes.Status500InternalServerError, success = false, message = ResponseMessages.msgSomethingWentWrong + ex.Message, userstatus = false }));
            }
        }
コード例 #3
0
        public async Task <JsonResult> ShowUserAddress()
        {
            try
            {
                //to get userid from access token
                string Id = User.Claims.First(c => c.Type == "UserID").Value;
                UserAddressViewModel _userDetails = new UserAddressViewModel();
                var user = await _userManager.FindByIdAsync(Id);

                var userstatus = user.UserStatus;
                if (user != null)
                {
                    var bussiness = new BussinessDetailViewModel();
                    if (User.IsInRole(Constants.isSubAdmin))
                    {
                        //get bussiness details of parent admin if role is subadmin
                        bussiness = await _bussinessService.GetBussinessDetailsById(user.ParentUserId);
                    }
                    else
                    {
                        //get bussiness details of admin by id
                        bussiness = await _bussinessService.GetBussinessDetailsById(user.Id);
                    }

                    _userDetails.Address1    = (!string.IsNullOrEmpty(bussiness.Address1))? bussiness.Address1 :"";
                    _userDetails.Address2    = (!string.IsNullOrEmpty(bussiness.Address2)) ? bussiness.Address2 : "";
                    _userDetails.CountryId   = bussiness.CountryId;
                    _userDetails.CountryName = (!string.IsNullOrEmpty(bussiness.CountryName)) ? bussiness.CountryName : "";
                    _userDetails.StateId     = bussiness.StateId;
                    _userDetails.StateName   = (!string.IsNullOrEmpty(bussiness.StateName)) ? bussiness.StateName : "";
                    _userDetails.City        = (!string.IsNullOrEmpty(bussiness.City)) ? bussiness.City : "";
                    _userDetails.Postalcode  = (!string.IsNullOrEmpty(bussiness.Postalcode)) ? bussiness.Postalcode : "";
                    return(new JsonResult(new { status = StatusCodes.Status200OK, success = true, message = "user address" + ResponseMessages.msgShownSuccess, userstatus, user_info = _userDetails }));
                }
                return(new JsonResult(new { status = StatusCodes.Status404NotFound, success = false, message = ResponseMessages.msgNotFound + "user address.", userstatus = false }));
            }
            catch (Exception ex)
            {
                return(new JsonResult(new { status = StatusCodes.Status500InternalServerError, success = false, message = ResponseMessages.msgSomethingWentWrong + ex.Message, userstatus = false }));
            }
        }
コード例 #4
0
        public async Task <JsonResult> ShowUserProfile()
        {
            try
            {
                //to get userid from access token
                string Id = User.Claims.First(c => c.Type == "UserID").Value;
                UserProfileViewModel _userDetails = new UserProfileViewModel();
                var user = await _userManager.FindByIdAsync(Id);

                var userstatus = user.UserStatus;
                if (user != null)
                {
                    var bussiness = new BussinessDetailViewModel();
                    if (User.IsInRole(Constants.isSubAdmin))
                    {
                        //get bussiness details of parent admin if role is subadmin
                        bussiness = await _bussinessService.GetBussinessDetailsById(user.ParentUserId);
                    }
                    else
                    {
                        //get bussiness details of admin by id
                        bussiness = await _bussinessService.GetBussinessDetailsById(user.Id);
                    }

                    _userDetails.Name         = user.Name;
                    _userDetails.Email        = user.Email;
                    _userDetails.Phone_no     = user.PhoneNumber;
                    _userDetails.Profile_pic  = (!string.IsNullOrEmpty(user.ProfilePic))? user.ProfilePic :"";
                    _userDetails.userstatus   = user.UserStatus;
                    _userDetails.Company_name = (!string.IsNullOrEmpty(bussiness.BussinessName)) ? bussiness.BussinessName : "";
                    _userDetails.Web_address  = (!string.IsNullOrEmpty(bussiness.WebAddress)) ? bussiness.WebAddress : "";
                    _userDetails.Fax          = (!string.IsNullOrEmpty(bussiness.Fax)) ? bussiness.Fax : "";
                    return(new JsonResult(new { status = StatusCodes.Status200OK, success = true, message = "user profile" + ResponseMessages.msgShownSuccess, userstatus, user_info = _userDetails }));
                }
                return(new JsonResult(new { status = StatusCodes.Status404NotFound, success = false, message = ResponseMessages.msgCouldNotFoundAssociatedUser, userstatus = false }));
            }
            catch (Exception ex)
            {
                return(new JsonResult(new { status = StatusCodes.Status500InternalServerError, success = false, message = ResponseMessages.msgSomethingWentWrong + ex.Message, userstatus = false }));
            }
        }
コード例 #5
0
        public async Task <IActionResult> UpdateBussinessProfile(BussinessDetailViewModel _bussinessmodel)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    //get userid from access token
                    string userId = User.Claims.First(c => c.Type == "UserID").Value;
                    var    user   = await _userManager.FindByIdAsync(userId);

                    var userstatus = user.UserStatus;
                    if (user != null && userstatus)
                    {
                        _bussinessmodel.IdentityId = userId;
                        bool result = await _bussinessService.UpdateBussinessProfile(_bussinessmodel);

                        if (result)
                        {
                            return(Ok(new { status = StatusCodes.Status200OK, success = true, message = "bussiness profile" + ResponseMessages.msgUpdationSuccess, userstatus }));
                        }
                        else
                        {
                            return(Ok(new { status = StatusCodes.Status400BadRequest, success = false, message = ResponseMessages.msgDbConnectionError, userstatus = false }));
                        }
                    }
                    else
                    {
                        return(Ok(new { status = StatusCodes.Status404NotFound, success = false, message = ResponseMessages.msgBlockOrInactiveUserNotPermitted, userstatus = false }));
                    }
                }
                else
                {
                    return(Ok(new { status = StatusCodes.Status406NotAcceptable, success = false, message = ResponseMessages.msgParametersNotCorrect, userstatus = false }));
                }
            }
            catch (Exception ex)
            {
                return(Ok(new { status = StatusCodes.Status500InternalServerError, success = false, message = ResponseMessages.msgSomethingWentWrong + ex.Message, userstatus = false }));
            }
        }
コード例 #6
0
        public async Task <IActionResult> UpdateProfile(UserProfileViewModel userUpdateModel)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    //get userid from access token
                    string userId = User.Claims.First(c => c.Type == "UserID").Value;
                    var    user   = await _userManager.FindByIdAsync(userId);

                    var userstatus = user.UserStatus;
                    if (user != null && userstatus)
                    {
                        if (!string.IsNullOrWhiteSpace(userUpdateModel.Name))
                        {
                            user.Name = userUpdateModel.Name;
                        }
                        if (!string.IsNullOrWhiteSpace(userUpdateModel.Phone_no))
                        {
                            user.PhoneNumber = userUpdateModel.Phone_no;
                        }
                        user.UpdatedBy   = userId;
                        user.UpdatedDate = DateTime.Now;
                        IdentityResult res = await _userManager.UpdateAsync(user);

                        if (res.Succeeded)
                        {
                            BussinessDetailViewModel _bussinessmodel = new BussinessDetailViewModel();
                            _bussinessmodel.IdentityId     = userId;
                            _bussinessmodel.BussinessName  = userUpdateModel.Company_name;
                            _bussinessmodel.BussinessPhone = userUpdateModel.Phone_no;
                            _bussinessmodel.Fax            = userUpdateModel.Fax;
                            _bussinessmodel.WebAddress     = userUpdateModel.Web_address;
                            bool result = await _bussinessService.UpdateBussinessProfile(_bussinessmodel);

                            if (result)
                            {
                                return(Ok(new { status = StatusCodes.Status200OK, success = true, message = "profile" + ResponseMessages.msgUpdationSuccess, userstatus }));
                            }
                            else
                            {
                                return(Ok(new { status = StatusCodes.Status400BadRequest, success = false, message = ResponseMessages.msgDbConnectionError, userstatus = false }));
                            }
                        }
                        else
                        {
                            return(Ok(new { status = StatusCodes.Status400BadRequest, success = false, message = res.Errors.First().Code, userstatus = false }));
                        }
                    }
                    else
                    {
                        return(Ok(new { status = StatusCodes.Status404NotFound, success = false, message = ResponseMessages.msgCouldNotFoundAssociatedUser, userstatus = false }));
                    }
                }
                else
                {
                    return(Ok(new { status = StatusCodes.Status406NotAcceptable, success = false, message = ResponseMessages.msgParametersNotCorrect, userstatus = false }));
                }
            }
            catch (Exception ex)
            {
                return(Ok(new { status = StatusCodes.Status500InternalServerError, success = false, message = ResponseMessages.msgSomethingWentWrong + ex.Message, userstatus = false }));
            }
        }
コード例 #7
0
        public async Task <IActionResult> Login(LoginModel model)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(Ok(new { status = StatusCodes.Status406NotAcceptable, success = false, message = ResponseMessages.msgParametersNotCorrect, userstatus = false }));
                }

                var user = await _userManager.FindByEmailAsync(model.Email);

                if (user == null)
                {
                    return(Ok(new { status = StatusCodes.Status404NotFound, success = false, message = ResponseMessages.msgCouldNotFoundAssociatedUser, userstatus = false }));
                }
                var userstatus = user.UserStatus;
                if (!userstatus)
                {
                    return(Ok(new { status = StatusCodes.Status400BadRequest, success = false, message = ResponseMessages.msgUserBlockedOrDeleted, userstatus = false }));
                }
                if (user != null && userstatus && await _userManager.CheckPasswordAsync(user, model.Password))
                {
                    //check email is confirmed
                    if (!_userManager.IsEmailConfirmedAsync(user).Result)
                    {
                        return(Ok(new { status = StatusCodes.Status200OK, success = false, message = ResponseMessages.msgEmailNotConfirmed, userstatus }));
                    }
                    // update user with device type and device token
                    user.DeviceToken = model.DeviceToken;
                    user.DeviceType  = model.DeviceType;
                    // change the security stamp only on correct username/password
                    await _userManager.UpdateSecurityStampAsync(user);

                    // Get role assigned to the user
                    var roles = await _userManager.GetRolesAsync(user);

                    IdentityOptions _options = new IdentityOptions();

                    var tokenDescriptor = new SecurityTokenDescriptor
                    {
                        Subject = new ClaimsIdentity(new Claim[]
                        {
                            new Claim("UserID", user.Id.ToString()),
                            new Claim(_options.ClaimsIdentity.RoleClaimType, roles.FirstOrDefault())
                        }),
                        Expires            = DateTime.UtcNow.AddDays(1),
                        SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_appSettings.JWT_Secret)), SecurityAlgorithms.HmacSha256Signature)
                    };

                    var bussiness = new BussinessDetailViewModel();
                    if (roles[0] == Constants.isAdmin)
                    {
                        //get bussiness details of admin by id
                        bussiness = await _bussinessService.GetBussinessDetailsById(user.Id);
                    }
                    else
                    {
                        //get bussiness details of parent admin if role is subadmin
                        bussiness = await _bussinessService.GetBussinessDetailsById(user.ParentUserId);
                    }
                    var tokenHandler  = new JwtSecurityTokenHandler();
                    var securityToken = tokenHandler.CreateToken(tokenDescriptor);
                    var accessToken   = tokenHandler.WriteToken(securityToken);
                    List <Permissions> permissionList = new List <Permissions>();
                    UserInfo           _userinfo      = new UserInfo();
                    _userinfo.Id               = user.Id;
                    _userinfo.Name             = user.Name;
                    _userinfo.ProfilePic       = (user.ProfilePic != null && user.ProfilePic != "") ? GetImageUrl(Constants.userImagesContainer, user.ProfilePic) :"";
                    _userinfo.Email            = user.Email;
                    _userinfo.Status           = user.IsActive;
                    _userinfo.CurrencyId       = (bussiness != null) ? bussiness.CurrencyId : 0;
                    _userinfo.CurrencySymbol   = (bussiness != null && bussiness.CurrencySymbol != null && bussiness.CurrencySymbol != "")? bussiness.CurrencySymbol: "";
                    _userinfo.Currency         = (bussiness != null && bussiness.CurrencyCode != null && bussiness.CurrencyCode != "") ? bussiness.CurrencyCode : "";
                    _userinfo.UserType         = roles.FirstOrDefault();
                    _userinfo.Permissions_List = permissionList;//send later
                    _userinfo.AccessToken      = accessToken;

                    var user_info = new Object();
                    {
                        user_info = _userinfo;
                    };
                    return(Ok(new { status = StatusCodes.Status200OK, success = true, message = ResponseMessages.msgUserLoginSuccess, userstatus, user_info }));
                }
                else
                {
                    return(Ok(new { status = StatusCodes.Status400BadRequest, success = false, message = ResponseMessages.msgInvalidCredentials, userstatus = false }));
                }
            }
            catch (Exception ex)
            {
                return(Ok(new { status = StatusCodes.Status500InternalServerError, success = false, message = ResponseMessages.msgSomethingWentWrong + ex.Message, userstatus = false }));
            }
        }
コード例 #8
0
        public async Task <bool> UpdateBussinessProfile(BussinessDetailViewModel _model)
        {
            if (db != null)
            {
                var bussiness = await db.BussinessDetails.FirstOrDefaultAsync(x => x.IdentityId == _model.IdentityId);

                if (bussiness != null)
                {
                    //update the bussiness
                    if (!string.IsNullOrWhiteSpace(_model.BussinessName))
                    {
                        bussiness.BussinessName = _model.BussinessName;
                    }
                    if (!string.IsNullOrWhiteSpace(_model.BussinessLogo))
                    {
                        bussiness.BussinessLogo = _model.BussinessLogo;
                    }
                    if (!string.IsNullOrWhiteSpace(_model.BussinessCoverPhoto))
                    {
                        bussiness.BussinessCoverPhoto = _model.BussinessCoverPhoto;
                    }
                    if (!string.IsNullOrWhiteSpace(_model.AccountNumber))
                    {
                        bussiness.AccountNumber = _model.AccountNumber;
                    }
                    if (_model.CurrencyId != 0)
                    {
                        bussiness.CurrencyId = _model.CurrencyId;
                    }
                    if (!string.IsNullOrWhiteSpace(_model.CIN))
                    {
                        bussiness.CIN = _model.CIN;
                    }
                    if (!string.IsNullOrWhiteSpace(_model.GSTIN))
                    {
                        bussiness.GSTIN = _model.GSTIN;
                    }
                    if (!string.IsNullOrWhiteSpace(_model.BussinessSize))
                    {
                        bussiness.BussinessSize = _model.BussinessSize;
                    }
                    if (!string.IsNullOrWhiteSpace(_model.BussinessClass))
                    {
                        bussiness.BussinessClass = _model.BussinessClass;
                    }
                    if (!string.IsNullOrWhiteSpace(_model.Founded))
                    {
                        bussiness.Founded = Convert.ToDateTime(_model.Founded);
                    }
                    if (!string.IsNullOrWhiteSpace(_model.Fax))
                    {
                        bussiness.Fax = _model.Fax;
                    }
                    if (!string.IsNullOrWhiteSpace(_model.WebAddress))
                    {
                        bussiness.WebAddress = _model.WebAddress;
                    }
                    if (!string.IsNullOrWhiteSpace(_model.BussinessEmail))
                    {
                        bussiness.BussinessEmail = _model.BussinessEmail;
                    }
                    if (!string.IsNullOrWhiteSpace(_model.BussinessPhone))
                    {
                        bussiness.BussinessPhone = _model.BussinessPhone;
                    }
                    if (!string.IsNullOrWhiteSpace(_model.Address1))
                    {
                        bussiness.Address1 = _model.Address1;
                    }
                    if (!string.IsNullOrWhiteSpace(_model.Address2))
                    {
                        bussiness.Address2 = _model.Address2;
                    }
                    if (_model.CountryId != 0)
                    {
                        bussiness.CountryId = _model.CountryId;
                    }
                    if (_model.StateId != 0)
                    {
                        bussiness.StateId = _model.StateId;
                    }
                    if (!string.IsNullOrWhiteSpace(_model.City))
                    {
                        bussiness.City = _model.City;
                    }
                    if (!string.IsNullOrWhiteSpace(_model.Postalcode))
                    {
                        bussiness.Postalcode = _model.Postalcode;
                    }
                    if (!string.IsNullOrWhiteSpace(_model.Signature))
                    {
                        bussiness.Signature = _model.Signature;
                    }
                    bussiness.UpdatedBy   = _model.IdentityId;
                    bussiness.UpdatedDate = DateTime.Now;
                    db.BussinessDetails.Update(bussiness);
                    //Commit the transaction
                    await db.SaveChangesAsync();

                    return(true);
                }
                return(false);
            }
            return(false);
        }
コード例 #9
0
        public async Task SendInvoiceMail(long InvoiceId)
        {
            try
            {
                InvoiceListViewModel invoiceDetails = new InvoiceListViewModel();
                invoiceDetails = await GetInvoiceByInvoiceId(InvoiceId);

                BussinessDetailViewModel adminbussinessDetials = new BussinessDetailViewModel();
                if (invoiceDetails != null)
                {
                    adminbussinessDetials = await _bussinessService.GetBussinessDetailsById(invoiceDetails.UserId);
                }

                var pathToFile = _hostingEnvironment.WebRootPath
                                 + Path.DirectorySeparatorChar.ToString()
                                 + Constants.mainTemplatesContainer
                                 + Path.DirectorySeparatorChar.ToString()
                                 + Constants.invoicesTemplatesContainer
                                 + Path.DirectorySeparatorChar.ToString()
                                 + Constants.invoice_template_Sample_Invoice_Template;

                var subject = string.Empty;
                if (invoiceDetails.Type == Constants.typeInvoice)
                {
                    subject = Constants.subject_SendInvoice_to_customer + " Invoice No: # " + invoiceDetails.InvoiceNumber;
                }
                else
                {
                    subject = Constants.subject_SendQuotation_to_customer + " Quotation No: # " + invoiceDetails.InvoiceNumber;
                }

                string        customerName = invoiceDetails.FirstName + " " + invoiceDetails.LastName;
                StringBuilder sb           = new StringBuilder();
                foreach (var item in invoiceDetails.ItemList)
                {
                    sb.Append("<tr class='item'>");
                    sb.AppendFormat("<td>{0}</td>", item.Name);
                    sb.AppendFormat("<td>{0}</td>", item.Quantity);
                    sb.AppendFormat("<td>{0}</td>", item.Tax);
                    sb.AppendFormat("<td>{0}</td>", item.Price);
                    sb.Append("</tr>");
                }
                string itemList = sb.ToString();
                var    body     = new BodyBuilder();
                using (StreamReader reader = System.IO.File.OpenText(pathToFile))
                {
                    body.HtmlBody = reader.ReadToEnd();
                }
                string messageBody = body.HtmlBody;
                messageBody = messageBody.Replace("{companylogoUrl}", adminbussinessDetials.BussinessLogo);
                messageBody = messageBody.Replace("{invoiceNumber}", invoiceDetails.InvoiceNumber);
                messageBody = messageBody.Replace("{invoiceDate}", invoiceDetails.Date);
                messageBody = messageBody.Replace("{dueDate}", invoiceDetails.DueDate);
                messageBody = messageBody.Replace("{bussinessName}", adminbussinessDetials.BussinessName);
                messageBody = messageBody.Replace("{bussinessAddress}", CommonMethods.SplitLine(adminbussinessDetials.Address1));
                messageBody = messageBody.Replace("{customerBussiness}", invoiceDetails.BussinessName);
                messageBody = messageBody.Replace("{customerEmail}", invoiceDetails.PersonalEmail);
                messageBody = messageBody.Replace("{itemList}", itemList);
                messageBody = messageBody.Replace("{subTotal}", invoiceDetails.Subtotal.ToString());
                messageBody = messageBody.Replace("{tax}", invoiceDetails.Tax.ToString());
                messageBody = messageBody.Replace("{total}", invoiceDetails.Total.ToString());
                messageBody = messageBody.Replace("{customerName}", customerName);
                messageBody = messageBody.Replace("{currencySymbol}", invoiceDetails.CurrencySymbol);
                await _emailSender.SendEmailAsync(email : invoiceDetails.PersonalEmail, subject : subject, htmlMessage : messageBody);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }