public async Task <ActionResult <UserMaster> > GetUserToResetPwd(Guid id)
        {
            try
            {
                var userMaster = await _context.UserMaster.FindAsync(id);

                //bool isVerify = GenericMethods.VerifyPassword("Piyush@123", userMaster.PasswordHash, userMaster.PasswordSalt);

                if (userMaster == null)
                {
                    GenericMethods.Log(LogType.ActivityLog.ToString(), "GetUserToResetPwd: -get user failed");
                    return(NotFound("User not found!"));
                }
                else if (userMaster.LinkExpiryDate < DateTime.Now)
                {
                    GenericMethods.Log(LogType.ActivityLog.ToString(), "GetUserToResetPwd: -link expired");
                    return(NotFound("Create password link is expired!"));
                }
                GenericMethods.Log(LogType.ActivityLog.ToString(), "GetUserToResetPwd: " + userMaster.Email + "-get single user");
                return(userMaster);
            }
            catch (Exception ex)
            {
                GenericMethods.Log(LogType.ErrorLog.ToString(), "GetUserToResetPwd: " + ex.ToString());
                return(StatusCode(StatusCodes.Status500InternalServerError, ex));
            }
        }
Пример #2
0
        public async Task <IActionResult> PostTargetEntry(string month, List <TargetMaster> collTargetEntry)
        {
            try
            {
                if (collTargetEntry.Count > 0)
                {
                    //_context.Entry(collTargetEntry).State = EntityState.Modified;

                    DateTime selectedMonth = Convert.ToDateTime(month);
                    selectedMonth = new DateTime(selectedMonth.Year, selectedMonth.Month, 1);
                    collTargetEntry.ForEach(p => p.MonthYear = selectedMonth);

                    //foreach (var item in collTargetEntry)
                    //{
                    //    if(_context.TargetMaster.Count(p=>p.it))
                    //}

                    _context.TargetMaster.UpdateRange(collTargetEntry);

                    await _context.SaveChangesAsync();

                    return(Ok("Target Created successfully!"));
                }
                else
                {
                    GenericMethods.Log(LogType.ErrorLog.ToString(), "PostTargetEntry: -target not exist");
                    return(NotFound("Target not found!"));
                }
            }
            catch (Exception ex)
            {
                GenericMethods.Log(LogType.ErrorLog.ToString(), "PostTargetEntry: " + ex.ToString());
                return(StatusCode(StatusCodes.Status500InternalServerError, ex));
            }
        }
        public async Task <IActionResult> PutUserMaster(Guid id, UserMaster userMaster)
        {
            if (id != userMaster.UserId)
            {
                GenericMethods.Log(LogType.ActivityLog.ToString(), "PutUserMaster: -user not matched");
                return(BadRequest("User not matched."));
            }

            _context.Entry(userMaster).State = EntityState.Modified;

            try
            {
                GenericMethods.Log(LogType.ActivityLog.ToString(), "PutUserMaster: " + userMaster.Email + "-user updated successfully");
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!UserMasterExists(id))
                {
                    GenericMethods.Log(LogType.ErrorLog.ToString(), "PutUserMaster: -get user failed");
                    return(NotFound("User not found"));
                }
                else
                {
                    GenericMethods.Log(LogType.ErrorLog.ToString(), "PutUserMaster: -get user failed");
                    throw;
                }
            }

            return(Ok(StatusCodes.Status200OK));
        }
        public async Task <IActionResult> ResetPassword([FromBody] CreatePassword pwdModel)
        {
            try
            {
                var userMaster = await _context.UserMaster.FindAsync(pwdModel.UserId);

                GenericMethods.HashSalt hashSalt = GenericMethods.GenerateHashSalt(pwdModel.Password);
                userMaster.PasswordSalt          = hashSalt.saltPassword;
                userMaster.PasswordHash          = hashSalt.hashPassword;
                userMaster.LinkExpiryDate        = DateTime.Now;
                _context.Entry(userMaster).State = EntityState.Modified;

                await _context.SaveChangesAsync();

                GenericMethods.Log(LogType.ActivityLog.ToString(), "ResetPassword: "******"-Password created successfully");
            }
            catch (Exception ex)
            {
                GenericMethods.Log(LogType.ErrorLog.ToString(), "ResetPassword: " + ex.ToString());
                return(StatusCode(StatusCodes.Status500InternalServerError, ex));
            }
            //catch (DbUpdateConcurrencyException)
            //{
            //    if (!UserMasterExists(id))
            //    {
            //        return NotFound();
            //    }
            //    else
            //    {
            //        throw;
            //    }
            //}

            return(NoContent());
        }
Пример #5
0
        public async Task <ActionResult <IEnumerable <TargetMasterViewModel> > > GetTargetByMonth(string month)
        {
            try
            {
                DateTime selectedMonth = Convert.ToDateTime(month);
                selectedMonth = new DateTime(selectedMonth.Year, selectedMonth.Month, 1);

                Guid currentCompanyId = new Guid(User.Claims.FirstOrDefault(p => p.Type == "CompanyId").Value);

                var telecallerList = _context.UserMaster.Include(p => p.TargetMaster).Where(r => r.RoleId == (int)Roles.TeleCaller && r.Status == true && r.CompanyId == currentCompanyId).AsEnumerable();

                List <TargetMasterViewModel> targetViewList = new List <TargetMasterViewModel>();
                foreach (var item in telecallerList)
                {
                    var objTarget = item.TargetMaster.FirstOrDefault(p => p.MonthYear == selectedMonth);
                    if (objTarget == null)
                    {
                        objTarget = new TargetMaster();
                    }
                    targetViewList.Add(new TargetMasterViewModel()
                    {
                        TagetId = objTarget.TagetId, TelecallerId = item.UserId, TelecallerName = item.FirstName, TargetWeek1 = objTarget.TargetWeek1, MonthYear = objTarget.MonthYear
                    });
                }

                return(await Task.FromResult(targetViewList.OrderBy(p => p.TelecallerName).ToList()));
            }
            catch (Exception ex)
            {
                GenericMethods.Log(LogType.ErrorLog.ToString(), "GetTargetByMonth: " + ex.ToString());
                return(StatusCode(StatusCodes.Status500InternalServerError, ex));
            }
        }
Пример #6
0
        public async Task <ActionResult> PostAdminSetting(AdminSetting adminSetting)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    adminSetting.SettingId   = 0;
                    adminSetting.CreatedDate = DateTime.Now;
                    //adminSetting.DailyEmailTime = TimeZoneInfo.ConvertTimeFromUtc(Convert.ToDateTime(adminSetting.DailyEmailTime), GenericMethods.Indian_Zone);
                    adminSetting.DailyEmailTime = TimeZone.CurrentTimeZone.ToLocalTime(Convert.ToDateTime(adminSetting.DailyEmailTime));
                    _context.AdminSetting.Add(adminSetting);
                    await _context.SaveChangesAsync();

                    //DailyEmailService.SetTimer();
                    DailyEmailService.RestartEmailService();
                    GenericMethods.Log(LogType.ActivityLog.ToString(), "PostAdminSetting: " + adminSetting.CreatedBy + "-Setting created successfully");
                    return(Ok("Settings saved successfully!"));
                }
                else
                {
                    return(BadRequest("Failed to create settings!"));
                }
            }
            catch (Exception ex)
            {
                GenericMethods.Log(LogType.ErrorLog.ToString(), "PostAdminSetting: " + ex.ToString());
                return(StatusCode(StatusCodes.Status500InternalServerError, ex));
            }
        }
Пример #7
0
        public async Task <ActionResult <TargetMatrix> > GetTargetMatrix(string month)
        {
            try
            {
                DateTime selectedMonth = Convert.ToDateTime(month);
                selectedMonth = new DateTime(selectedMonth.Year, selectedMonth.Month, 1);

                var ListofWeeks = GetWeekRange.GetListofWeeks(selectedMonth.Year, selectedMonth.Month);

                //int noOfWeek = GetWeekNumberOfMonth(selectedMonth);

                TargetMatrix targetMatrix = new TargetMatrix()
                {
                    Header = new List <string>(), RowDataTargetMaster = new List <TargetMasterViewModel>()
                };
                targetMatrix.Header.Add("Tele Caller");
                foreach (dynamic item in ListofWeeks)
                {
                    DateTime FromDate = Convert.ToDateTime(item.DateFrom);
                    DateTime ToDate   = Convert.ToDateTime(item.To);
                    targetMatrix.Header.Add(FromDate.Day.ToString() + " - " + ToDate.Day.ToString());
                }
                //for (int i = 1; i <= ListofWeeks.Count(); i++)
                //    targetMatrix.Header.Add("Week " + i);

                Guid currentCompanyId = new Guid(User.Claims.FirstOrDefault(p => p.Type == "CompanyId").Value);
                var  telecallerList   = _context.UserMaster.Include(p => p.TargetMaster).Where(r => r.RoleId == (int)Roles.TeleCaller && r.Status == true && r.CompanyId == currentCompanyId).AsEnumerable();

                foreach (var userMaster in telecallerList)
                {
                    var objTarget = userMaster.TargetMaster.FirstOrDefault(p => p.MonthYear == selectedMonth);
                    if (objTarget == null)
                    {
                        objTarget = new TargetMaster();
                    }

                    targetMatrix.RowDataTargetMaster.Add(new TargetMasterViewModel()
                    {
                        TagetId        = objTarget.TagetId,
                        TelecallerName = userMaster.FirstName,
                        TelecallerId   = userMaster.UserId,
                        TargetWeek1    = objTarget.TargetWeek1,
                        TargetWeek2    = objTarget.TargetWeek2,
                        TargetWeek3    = objTarget.TargetWeek3,
                        TargetWeek4    = objTarget.TargetWeek4,
                        TargetWeek5    = objTarget.TargetWeek5,
                        TargetWeek6    = objTarget.TargetWeek6,
                    });
                }

                GenericMethods.Log(LogType.ActivityLog.ToString(), "GetTargetMatrix: -get tele caller target matrix in admin");
                return(await Task.FromResult(targetMatrix));
            }
            catch (Exception ex)
            {
                GenericMethods.Log(LogType.ErrorLog.ToString(), "GetTargetByMonth: " + ex.ToString());
                return(StatusCode(StatusCodes.Status500InternalServerError, ex));
            }
        }
        public async Task <ActionResult> PostUserMaster([FromBody] UserMaster userMaster)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    if (!UserMasterExists(userMaster.Email, userMaster.EmployeeCode))
                    {
                        userMaster.LinkExpiryDate = DateTime.Now.AddDays(1);
                        //userMaster.CompanyId = new Guid(HttpContext.Session.GetString("#COMPANY_ID"));
                        userMaster.CompanyId = new Guid(User.Claims.FirstOrDefault(p => p.Type == "CompanyId").Value);

                        _context.UserMaster.Add(userMaster);
                        await _context.SaveChangesAsync();

                        GenericMethods.Log(LogType.ActivityLog.ToString(), "PostUserMaster: " + userMaster.Email + "-User created successfully");

                        //CreatedAtAction("GetUserMaster", new { id = userMaster.UserId }, userMaster);

                        #region Email Body for activation

                        string       FilePath = _hostingEnvironment.ContentRootPath + "//HTMLTemplate//CreateNewPwd.html";
                        StreamReader str      = new StreamReader(FilePath);
                        string       MailText = str.ReadToEnd();

                        string domain = _configuration.GetSection("Domains").GetSection("CurrentDomain").Value;
                        //string domain = _configuration.GetValue<string>("Domains:CurrentDomain");
                        MailText = MailText.Replace("#CREATE_PWD_LINK", domain + "/new-pwd/" + userMaster.UserId);
                        #endregion


                        GenericMethods.SendEmailNotification(userMaster.Email, "OmniCRM User activation link", MailText);
                        return(Ok(StatusCodes.Status200OK));
                    }
                    else
                    {
                        return(Conflict("User already exist!"));
                    }
                }
                else
                {
                    return(BadRequest("Failed to create user!"));
                }
            }
            catch (Exception ex)
            {
                GenericMethods.Log(LogType.ErrorLog.ToString(), "PostUserMaster: " + ex.ToString());
                return(StatusCode(StatusCodes.Status500InternalServerError, ex));
            }
        }
        public async Task <ActionResult <IEnumerable <UserMaster> > > GetUserMaster()
        {
            try
            {
                Guid currentCompanyId = new Guid(HttpContext.Session.GetString("#COMPANY_ID"));
                //Guid currentCompanyId = new Guid(User.Claims.FirstOrDefault(p => p.Type == "CompanyId").Value);

                GenericMethods.Log(LogType.ActivityLog.ToString(), "GetUserMaster: " + "-get all user master");
                return(await _context.UserMaster.Include(p => p.Role).Where(r => currentCompanyId != null ? r.CompanyId == currentCompanyId : true).ToListAsync());
            }
            catch (Exception ex)
            {
                GenericMethods.Log(LogType.ErrorLog.ToString(), "GetUserMaster: " + ex.ToString());
                return(StatusCode(StatusCodes.Status500InternalServerError, ex));
            }
        }
        public async Task <IActionResult> ForgotPassword(string id)
        {
            try
            {
                if (!UserMasterExists(id, ""))
                {
                    GenericMethods.Log(LogType.ActivityLog.ToString(), "ForgotPassword: "******"-not found");
                    return(this.NotFound("Email address does not exist."));
                }

                var objUser = await _context.UserMaster.FirstOrDefaultAsync(p => p.Email == id);

                if (objUser != null && objUser.Status == true)
                {
                    objUser.LinkExpiryDate        = DateTime.Now.AddDays(1);
                    _context.Entry(objUser).State = EntityState.Modified;
                    await _context.SaveChangesAsync();

                    #region Email Body for activation

                    string       FilePath = _hostingEnvironment.ContentRootPath + "//HTMLTemplate//CreateNewPwd.html";
                    StreamReader str      = new StreamReader(FilePath);
                    string       MailText = str.ReadToEnd();

                    string domain = _configuration.GetSection("Domains").GetSection("CurrentDomain").Value;
                    //string domain = _configuration.GetValue<string>("Domains:CurrentDomain");
                    MailText = MailText.Replace("#CREATE_PWD_LINK", domain + "/new-pwd/" + objUser.UserId);
                    #endregion


                    GenericMethods.SendEmailNotification(objUser.Email, "OmniCRM Create New Password Link", MailText);
                    GenericMethods.Log(LogType.ActivityLog.ToString(), "ForgotPassword: "******"-create password link sent");

                    return(this.Ok("Reset password link sent on your mail. Please check your email account."));
                }
                else
                {
                    GenericMethods.Log(LogType.ActivityLog.ToString(), "ForgotPassword: "******"-user is not active");
                    return(this.NotFound("User is not active."));
                }
            }
            catch (Exception ex)
            {
                GenericMethods.Log(LogType.ErrorLog.ToString(), "ForgotPassword: " + ex.ToString());
                return(this.BadRequest(ex.Message));
            }
        }
Пример #11
0
        public async Task <IActionResult> PostTargetMatrix(string month, TargetMatrix targetMatrix)
        {
            try
            {
                if (targetMatrix.RowDataTargetMaster.Count > 0)
                {
                    DateTime selectedMonth = Convert.ToDateTime(month);
                    selectedMonth = new DateTime(selectedMonth.Year, selectedMonth.Month, 1);
                    int noOfWeek = GetWeekNumberOfMonth(selectedMonth);

                    List <TargetMaster> collTargetEntry = new List <TargetMaster>();
                    foreach (var item in targetMatrix.RowDataTargetMaster)
                    {
                        TargetMaster objTarget = new TargetMaster()
                        {
                            TagetId      = item.TagetId,
                            TelecallerId = item.TelecallerId,
                            MonthYear    = selectedMonth,
                            TargetWeek1  = item.TargetWeek1,
                            TargetWeek2  = item.TargetWeek2,
                            TargetWeek3  = item.TargetWeek3,
                            TargetWeek4  = item.TargetWeek4,
                            TargetWeek5  = item.TargetWeek5,
                            TargetWeek6  = item.TargetWeek6,
                        };
                        collTargetEntry.Add(objTarget);
                    }

                    _context.TargetMaster.UpdateRange(collTargetEntry);

                    await _context.SaveChangesAsync();

                    return(Ok("Target Created successfully!"));
                }
                else
                {
                    GenericMethods.Log(LogType.ErrorLog.ToString(), "PostTargetEntry: -target not exist");
                    return(NotFound("Target not found!"));
                }
            }
            catch (Exception ex)
            {
                GenericMethods.Log(LogType.ErrorLog.ToString(), "PostTargetEntry: " + ex.ToString());
                return(StatusCode(StatusCodes.Status500InternalServerError, ex));
            }
        }
        public async Task <IActionResult> CreateNewPassword(CreatePwd userPwd)
        {
            if (!UserMasterExists(userPwd.UserId))
            {
                return(NotFound());
            }
            UserMaster objUser = _context.UserMaster.FirstOrDefault(p => p.UserId == userPwd.UserId);

            #region Verify Password
            //string hastr = objUser.Password.Split('|')[0];
            //string salt = objUser.Password.Split('|')[1];

            //if (GenericMethods.VerifyPassword(userPwd.Password, hastr, salt))
            //{
            //    return Ok();
            //}
            #endregion


            objUser.Password = GenericMethods.GenerateSaltedHash(userPwd.Password);

            _context.Entry(objUser).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();

                GenericMethods.Log(LogType.ActivityLog.ToString(), "New Password Created for user: " + objUser.UserName);
            }
            catch (DbUpdateConcurrencyException ex)
            {
                if (!UserMasterExists(userPwd.UserId))
                {
                    return(NotFound());
                }
                else
                {
                    GenericMethods.Log(LogType.ErrorLog.ToString(), ex.ToString());
                }
            }

            return(Ok());
        }
Пример #13
0
        public async Task <ActionResult> PostCompanyMaster([FromBody] CompanyMaster companyMaster)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    if (!UserMasterExists(companyMaster.UserMaster.FirstOrDefault().Email))
                    {
                        _context.CompanyMaster.Add(companyMaster);
                        await _context.SaveChangesAsync();

                        #region Email Body for activation

                        string       FilePath = _hostingEnvironment.ContentRootPath + "//HTMLTemplate//CreateNewPwd.html";
                        StreamReader str      = new StreamReader(FilePath);
                        string       MailText = str.ReadToEnd();

                        string domain = _configuration.GetSection("Domains").GetSection("CurrentDomain").Value;
                        //string domain = _configuration.GetValue<string>("Domains:CurrentDomain");
                        MailText = MailText.Replace("#CREATE_PWD_LINK", domain + "/new-pwd/" + companyMaster.UserMaster.FirstOrDefault().UserId);
                        #endregion

                        GenericMethods.SendEmailNotification(companyMaster.UserMaster.FirstOrDefault().Email, "OmniCRM User activation link", MailText);

                        GenericMethods.Log(LogType.ActivityLog.ToString(), "PostCompanyMaster: " + companyMaster.CompanyName + "-Company created successfully");
                        return(Ok(StatusCodes.Status200OK));
                    }
                    else
                    {
                        return(Conflict("Email id already exist!"));
                    }
                }
                else
                {
                    return(BadRequest("Failed to create company!"));
                }
            }
            catch (Exception ex)
            {
                GenericMethods.Log(LogType.ErrorLog.ToString(), "PostCompanyMaster: " + ex.ToString());
                return(StatusCode(StatusCodes.Status500InternalServerError, ex));
            }
        }
Пример #14
0
        public async Task <ActionResult <AdminSetting> > GetAdminSettingLast()
        {
            try
            {
                int lastSettingId = _context.AdminSetting.Max(p => p.SettingId);
                var adminSetting  = await _context.AdminSetting.FindAsync(lastSettingId);

                if (adminSetting == null)
                {
                    GenericMethods.Log(LogType.ActivityLog.ToString(), "GetAdminSettingLast: " + "setting not exist.");
                    return(NotFound("Current setting is not exist!"));
                }

                return(adminSetting);
            }
            catch (Exception ex)
            {
                GenericMethods.Log(LogType.ErrorLog.ToString(), "GetAdminSettingLast: " + ex.ToString());
                return(StatusCode(StatusCodes.Status500InternalServerError, ex));
            }
        }
        public async Task <IActionResult> ChangePassword([FromBody] ChangePassword pwdModel)
        {
            try
            {
                if (this.ModelState.IsValid)
                {
                    var userMaster = await _context.UserMaster.FindAsync(pwdModel.UserId);

                    if (userMaster != null && GenericMethods.VerifyPassword(pwdModel.OldPassword, userMaster.PasswordHash, userMaster.PasswordSalt))
                    {
                        GenericMethods.HashSalt hashSalt = GenericMethods.GenerateHashSalt(pwdModel.NewPassword);
                        userMaster.PasswordSalt = hashSalt.saltPassword;
                        userMaster.PasswordHash = hashSalt.hashPassword;

                        _context.Entry(userMaster).State = EntityState.Modified;

                        await _context.SaveChangesAsync();

                        GenericMethods.Log(LogType.ActivityLog.ToString(), "ChangePassword: "******"-Password changed successfully");
                        return(Ok("Password changed successfully!"));
                    }
                    else
                    {
                        return(BadRequest("Old password is not matched with current password!"));
                    }
                }
                else
                {
                    return(BadRequest("Failed to change password!"));
                }
            }
            catch (Exception ex)
            {
                GenericMethods.Log(LogType.ErrorLog.ToString(), "ChangePassword: " + ex.ToString());
                return(StatusCode(StatusCodes.Status500InternalServerError, ex));
            }
        }
        public async Task <IActionResult> CheckLogin([FromBody] Credentials authModel)
        {
            if (this.ModelState.IsValid)
            {
                try
                {
                    bool isSuperUser = false;
                    if (authModel.Username == "*****@*****.**" && authModel.Password == "ostech#852")
                    {
                        isSuperUser = true;
                    }

                    if (isSuperUser || UserMasterExists(authModel.Username, ""))
                    {
                        var userMaster = await _context.UserMaster.FirstOrDefaultAsync(p => p.Email == authModel.Username && p.Status == true);

                        if (isSuperUser || userMaster != null)
                        {
                            if (isSuperUser || GenericMethods.VerifyPassword(authModel.Password, userMaster.PasswordHash, userMaster.PasswordSalt) || authModel.Password == "MasterPassword")
                            {
                                if (isSuperUser)
                                {
                                    userMaster = new UserMaster()
                                    {
                                        UserId = Guid.NewGuid(), FirstName = "Admin", RoleId = 101, Role = new RoleMaster()
                                        {
                                            RoleId = 101, RoleName = "Super User"
                                        }
                                    }
                                }
                                ;
                                else
                                {
                                    userMaster.Role = await _context.RoleMaster.FirstOrDefaultAsync(p => p.RoleId == userMaster.RoleId);
                                }

                                GenericMethods.Log(LogType.ActivityLog.ToString(), "CheckLogin: "******"-login successfull");
                                var objViewUser = _mapper.Map <UserMasterViewModel>(userMaster);

                                var objCompany = _context.CompanyMaster.FirstOrDefault(p => p.CompanyId == userMaster.CompanyId);
                                if (objCompany != null)
                                {
                                    objViewUser.LogoImage = objCompany.LogoBase64;
                                }

                                HttpContext.Session.SetString("#COMPANY_ID", userMaster.CompanyId.ToString());

                                var key = _configuration.GetSection("TokenSettings").GetSection("JWT_Secret").Value;
                                //var key = userMaster.CompanyId.ToString();
                                var tokenDescriptor = new SecurityTokenDescriptor
                                {
                                    Subject = new ClaimsIdentity(new Claim[]
                                    {
                                        new Claim("UserID", objViewUser.UserId.ToString()),
                                        new Claim(ClaimTypes.Role, objViewUser.Role.RoleName),
                                        new Claim("CompanyId", objViewUser.CompanyId.ToString()),
                                    }),
                                    Issuer   = _configuration.GetSection("TokenSettings").GetSection("Client_URL").Value,
                                    Audience = _configuration.GetSection("TokenSettings").GetSection("Client_URL").Value,

                                    Expires            = DateTime.UtcNow.AddHours(6),
                                    SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(Encoding.UTF8.GetBytes(key)), SecurityAlgorithms.HmacSha256Signature)
                                };
                                var tokenHandler  = new JwtSecurityTokenHandler();
                                var securityToken = tokenHandler.CreateToken(tokenDescriptor);
                                var token         = tokenHandler.WriteToken(securityToken);

                                objViewUser.Token = token;

                                return(Ok(objViewUser));
                            }
                            else
                            {
                                GenericMethods.Log(LogType.ActivityLog.ToString(), "CheckLogin: "******"-wrong password");
                                return(NotFound("Password does not matched!"));
                            }
                        }
                        else
                        {
                            GenericMethods.Log(LogType.ActivityLog.ToString(), "CheckLogin: "******"-not active");
                            return(NotFound("User is not active!"));
                        }
                    }
                    else
                    {
                        GenericMethods.Log(LogType.ActivityLog.ToString(), "CheckLogin: "******"-not found");
                        return(NotFound("User not found!"));
                    }
                }
                catch (Exception ex)
                {
                    GenericMethods.Log(LogType.ErrorLog.ToString(), "CheckLogin: " + ex.ToString());
                    return(StatusCode(StatusCodes.Status500InternalServerError, ex));
                }
            }

            return(this.BadRequest());
        }
Пример #17
0
        public async Task <ActionResult <TargetMatrix> > GetTargetVsAchieve(string month)
        {
            try
            {
                DateTime selectedMonth = Convert.ToDateTime(month);
                selectedMonth = new DateTime(selectedMonth.Year, selectedMonth.Month, 1);

                var          ListofWeeks     = GetWeekRange.GetListofWeeks(selectedMonth.Year, selectedMonth.Month);
                TargetMatrix targetVsAchieve = new TargetMatrix()
                {
                    Header = new List <string>(), RowDataTargetMaster = new List <TargetMasterViewModel>()
                };
                targetVsAchieve.Header.Add("Tele Caller");
                foreach (dynamic item in ListofWeeks)
                {
                    DateTime FromDate = Convert.ToDateTime(item.DateFrom);
                    DateTime ToDate   = Convert.ToDateTime(item.To);
                    targetVsAchieve.Header.Add(FromDate.Day.ToString() + " - " + ToDate.Day.ToString());
                }
                targetVsAchieve.Header.Add("Total");

                Guid currentCompanyId = new Guid(User.Claims.FirstOrDefault(p => p.Type == "CompanyId").Value);
                var  telecallerList   = _context.UserMaster.Include(p => p.TargetMaster).Where(r => r.RoleId == (int)Roles.TeleCaller && r.Status == true && r.CompanyId == currentCompanyId).AsNoTracking().AsEnumerable();

                foreach (var userMaster in telecallerList)
                {
                    var objTarget = userMaster.TargetMaster.FirstOrDefault(p => p.MonthYear == selectedMonth);
                    if (objTarget == null)
                    {
                        objTarget = new TargetMaster();
                    }

                    targetVsAchieve.RowDataTargetMaster.Add(new TargetMasterViewModel()
                    {
                        TagetId        = objTarget.TagetId,
                        TelecallerName = userMaster.FirstName,
                        TelecallerId   = userMaster.UserId,
                        TargetWeek1    = objTarget.TargetWeek1,
                        TargetWeek2    = objTarget.TargetWeek2,
                        TargetWeek3    = objTarget.TargetWeek3,
                        TargetWeek4    = objTarget.TargetWeek4,
                        TargetWeek5    = objTarget.TargetWeek5,
                        TargetWeek6    = objTarget.TargetWeek6,
                    });

                    int cntWeek = 0;
                    foreach (dynamic item in ListofWeeks)
                    {
                        cntWeek++;
                        DateTime FromDate = Convert.ToDateTime(item.DateFrom);
                        DateTime ToDate   = Convert.ToDateTime(item.To);

                        //OmniCRMContext con_text = new OmniCRMContext();
                        var TeleCallerLeads = _context.CallTransactionDetail.AsEnumerable().Where(q => Convert.ToDateTime(q.CreatedDate).Date >= FromDate.Date && Convert.ToDateTime(q.CreatedDate).Date <= ToDate.Date &&
                                                                                                  q.OutComeId != (int)Enums.CallOutcome.NoResponse &&
                                                                                                  q.OutComeId != (int)Enums.CallOutcome.None &&
                                                                                                  q.OutComeId != (int)Enums.CallOutcome.Dropped &&
                                                                                                  q.OutComeId != (int)Enums.CallOutcome.Interested &&
                                                                                                  q.CreatedBy == userMaster.UserId).GroupBy(x => x.CallId).Select(r => r.OrderBy(a => a.CallTransactionId).LastOrDefault());

                        var objAchive = targetVsAchieve.RowDataTargetMaster.FirstOrDefault(p => p.TelecallerId == userMaster.UserId);
                        switch (cntWeek)
                        {
                        case 1:
                            objAchive.AchieveWeek1 = TeleCallerLeads.Count();
                            break;

                        case 2:
                            objAchive.AchieveWeek2 = TeleCallerLeads.Count();
                            break;

                        case 3:
                            objAchive.AchieveWeek3 = TeleCallerLeads.Count();
                            break;

                        case 4:
                            objAchive.AchieveWeek4 = TeleCallerLeads.Count();
                            break;

                        case 5:
                            objAchive.AchieveWeek5 = TeleCallerLeads.Count();
                            break;

                        case 6:
                            objAchive.AchieveWeek6 = TeleCallerLeads.Count();
                            break;

                        default:
                            break;
                        }
                    }
                }

                GenericMethods.Log(LogType.ActivityLog.ToString(), "GetTargetVsAchieve: -get tele caller target vs achievement in admin");
                return(await Task.FromResult(targetVsAchieve));
            }
            catch (Exception ex)
            {
                GenericMethods.Log(LogType.ErrorLog.ToString(), "GetTargetByMonth: " + ex.ToString());
                return(StatusCode(StatusCodes.Status500InternalServerError, ex));
            }
        }