Promact/slack-erp-custom-integration-mvc

View on GitHub

Showing 196 of 517 total issues

Method LeaveAsync has 39 lines of code (exceeds 25 allowed). Consider refactoring.
Open

        private async Task<string> LeaveAsync(int projectId, string slackUserName, string slackUserId, string applicant, string applicantId)
        {
            string returnMsg;
            //we will have to check whether the scrum is on going or not before calling FetchScrumStatus()
            //because any command outside the scrum time must not be entertained except with the replies like "scrum is concluded","scrum has not started" or "scrum has not started".

    Method UpdateLeaveRejectedAsync has 39 lines of code (exceeds 25 allowed). Consider refactoring.
    Open

            [Fact, Trait("Category", "Required")]
            public async Task UpdateLeaveRejectedAsync()
            {
                await AddUser();
                await AddThreeUserIncomingWebHookAsync();
    Severity: Minor
    Found in Slack.Automation/Promact.Core.Test/SlackRepositoryTest.cs - About 1 hr to fix

      Method LeaveUpdateSickAsync has 37 lines of code (exceeds 25 allowed). Consider refactoring.
      Open

              [Fact, Trait("Category", "Required")]
              public async Task LeaveUpdateSickAsync()
              {
                  slackLeave.ResponseUrl = _stringConstant.IncomingWebHookUrl;
                  await AddThreeUserIncomingWebHookAsync();
      Severity: Minor
      Found in Slack.Automation/Promact.Core.Test/SlackRepositoryTest.cs - About 1 hr to fix

        Method Create has 37 lines of code (exceeds 25 allowed). Consider refactoring.
        Open

                public static ApplicationUserManager Create(IdentityFactoryOptions<ApplicationUserManager> options, IOwinContext context) 
                {
                    var manager = new ApplicationUserManager(new UserStore<ApplicationUser>(context.Get<PromactErpContext>()));
                    // Configure validation logic for usernames
                    manager.UserValidator = new UserValidator<ApplicationUser>(manager)
        Severity: Minor
        Found in Slack.Automation/Promact.Erp.DomainModel/Models/IdentityConfig.cs - About 1 hr to fix

          Method Initialization has 36 lines of code (exceeds 25 allowed). Consider refactoring.
          Open

                  public void Initialization()
                  {
                      user.Id = _stringConstant.StringIdForTest;
                      user.Email = _stringConstant.EmailForTest;
                      user.UserName = _stringConstant.EmailForTest;
          Severity: Minor
          Found in Slack.Automation/Promact.Core.Test/ScrumSetUpRepositoryTest.cs - About 1 hr to fix

            Method GetUserAndTaskMailDetailsAsync has 36 lines of code (exceeds 25 allowed). Consider refactoring.
            Open

                    private async Task<UserAndTaskMailDetailsWithAccessToken> GetUserAndTaskMailDetailsAsync(string slackUserId)
                    {
                        UserAndTaskMailDetailsWithAccessToken userAndTaskMailDetailsWithAccessToken = new UserAndTaskMailDetailsWithAccessToken();
                        var user = await _userRepository.FirstOrDefaultAsync(x => x.SlackUserId == slackUserId);
                        if (user != null)

              Method MarkLeaveAsync has 36 lines of code (exceeds 25 allowed). Consider refactoring.
              Open

                      private async Task<string> MarkLeaveAsync(List<User> users, int scrumId, string applicant, List<Question> questions, int projectId, string slackUserId, string applicantId)
                      {
                          string returnMsg = string.Empty;
                          User user = users.FirstOrDefault(x => x.SlackUserId == applicantId);
                          if (user != null)

                Method MarkLeaveAsync has a Cognitive Complexity of 27 (exceeds 20 allowed). Consider refactoring.
                Open

                        private async Task<string> MarkLeaveAsync(List<User> users, int scrumId, string applicant, List<Question> questions, int projectId, string slackUserId, string applicantId)
                        {
                            string returnMsg = string.Empty;
                            User user = users.FirstOrDefault(x => x.SlackUserId == applicantId);
                            if (user != null)

                Cognitive Complexity

                Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

                A method's cognitive complexity is based on a few simple rules:

                • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
                • Code is considered more complex for each "break in the linear flow of the code"
                • Code is considered more complex when "flow breaking structures are nested"

                Further reading

                Method UpdateSickLeaveAsync has a Cognitive Complexity of 27 (exceeds 20 allowed). Consider refactoring.
                Open

                        private async Task<string> UpdateSickLeaveAsync(List<string> slackText, ApplicationUser user, string accessToken)
                        {
                            // checking from oAuth whether user is Admin or not
                            bool isAdmin = await _oauthCallsRepository.UserIsAdminAsync(user.Id, accessToken);
                            _logger.Debug("UpdateSickLeaveAsync user is admin : " + isAdmin);

                Cognitive Complexity

                Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

                A method's cognitive complexity is based on a few simple rules:

                • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
                • Code is considered more complex for each "break in the linear flow of the code"
                • Code is considered more complex when "flow breaking structures are nested"

                Further reading

                Method LeaveAsync has a Cognitive Complexity of 27 (exceeds 20 allowed). Consider refactoring.
                Open

                        private async Task<string> LeaveAsync(int projectId, string slackUserName, string slackUserId, string applicant, string applicantId)
                        {
                            string returnMsg;
                            //we will have to check whether the scrum is on going or not before calling FetchScrumStatus()
                            //because any command outside the scrum time must not be entertained except with the replies like "scrum is concluded","scrum has not started" or "scrum has not started".

                Cognitive Complexity

                Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

                A method's cognitive complexity is based on a few simple rules:

                • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
                • Code is considered more complex for each "break in the linear flow of the code"
                • Code is considered more complex when "flow breaking structures are nested"

                Further reading

                Method AssignAnswersAsync has 35 lines of code (exceeds 25 allowed). Consider refactoring.
                Open

                        private async Task<EmployeeScrumDetails> AssignAnswersAsync(Scrum scrum, DateTime scrumDate, User user)
                        {
                            _logger.Debug("Assign Answers Async: " + scrumDate);
                            EmployeeScrumDetails employeeScrumDetail = new EmployeeScrumDetails();
                            //Fetch all the scrum answers for a particular employee

                  Method ProcessCommandsAsync has 35 lines of code (exceeds 25 allowed). Consider refactoring.
                  Open

                          private async Task<string> ProcessCommandsAsync(string slackUserId, string slackChannelId, string givenProjectName, string command)
                          {
                              //Checks whether channelId starts with "G" or "C". This is done inorder to make sure that only gruops or channels are added manually
                              if (IsPrivateChannel(slackChannelId))
                              {

                    Method Initialize has 33 lines of code (exceeds 25 allowed). Consider refactoring.
                    Open

                            public void Initialize()
                            {
                                profile.Skype = _stringConstant.TestUserId;
                                profile.Email = _stringConstant.EmailForTest;
                                profile.FirstName = _stringConstant.UserNameForTest;
                    Severity: Minor
                    Found in Slack.Automation/Promact.Core.Test/OAuthLoginRepositoryTest.cs - About 1 hr to fix

                      Method GetListOfEmailByMailSettingAsync has 33 lines of code (exceeds 25 allowed). Consider refactoring.
                      Open

                              private async Task<List<string>> GetListOfEmailByMailSettingAsync(bool isTo, int mailSettingId, string userId, int projectId)
                              {
                                  List<string> emails = new List<string>();
                                  var mailSettingMappings = (await _mailSettingMappingDataRepository.FetchAsync(x => x.MailSettingId == mailSettingId && x.IsTo == isTo)).ToList();
                                  if (mailSettingMappings.Any())

                        Method TaskMailDetailsReportNextPreviousDateAsync has 32 lines of code (exceeds 25 allowed). Consider refactoring.
                        Open

                                [Fact, Trait("Category", "Required")]
                                public async Task TaskMailDetailsReportNextPreviousDateAsync()
                                {
                                    var userResponse = Task.FromResult(_stringConstant.UserDetailsFromOauthServer);
                                    var userRequestUrl = string.Format(_stringConstant.FirstAndSecondIndexStringFormat, _stringConstant.UserDetailsUrl, _stringConstant.FirstNameForTest);
                        Severity: Minor
                        Found in Slack.Automation/Promact.Core.Test/TaskMailRepositoryTest.cs - About 1 hr to fix

                          Method ReplyStatusofScrumToClient has 32 lines of code (exceeds 25 allowed). Consider refactoring.
                          Open

                                  private string ReplyStatusofScrumToClient(ScrumStatus scrumStatus)
                                  {
                                      string returnMessage;
                                      switch (scrumStatus)
                                      {

                            Method TaskMailDetailsReportNextPreviousDateForEmployeeAsync has 32 lines of code (exceeds 25 allowed). Consider refactoring.
                            Open

                                    [Fact, Trait("Category", "Required")]
                                    public async Task TaskMailDetailsReportNextPreviousDateForEmployeeAsync()
                                    {
                                        var userResponse = Task.FromResult(_stringConstant.UserDetailsFromOauthServer);
                                        var userRequestUrl = string.Format(_stringConstant.FirstAndSecondIndexStringFormat, _stringConstant.UserDetailsUrl, _stringConstant.FirstNameForTest);
                            Severity: Minor
                            Found in Slack.Automation/Promact.Core.Test/TaskMailRepositoryTest.cs - About 1 hr to fix

                              Method GetAsync has 32 lines of code (exceeds 25 allowed). Consider refactoring.
                              Open

                                      public async Task<string> GetAsync(string baseUrl, string contentUrl, string accessToken, string accessTokenType)
                                      {
                                          try
                                          {
                                              _client = new System.Net.Http.HttpClient();
                              Severity: Minor
                              Found in Slack.Automation/Promact.Erp.Util/HttpClient/HttpClientService.cs - About 1 hr to fix

                                Method LeaveApplyForCLAsync has 31 lines of code (exceeds 25 allowed). Consider refactoring.
                                Open

                                        [Fact, Trait("Category", "Required")]
                                        public async Task LeaveApplyForCLAsync()
                                        {
                                            await AddGroup();
                                            await AddMailSetting();
                                Severity: Minor
                                Found in Slack.Automation/Promact.Core.Test/SlackRepositoryTest.cs - About 1 hr to fix

                                  Method FetchScrumStatusAsync has 31 lines of code (exceeds 25 allowed). Consider refactoring.
                                  Open

                                          private async Task<ScrumStatus> FetchScrumStatusAsync(ProjectAc project, List<User> users, List<Question> questions)
                                          {
                                              if (project?.Id > 0)
                                              {
                                                  if (project.IsActive)
                                    Severity
                                    Category
                                    Status
                                    Source
                                    Language