public ActionResult Upload(HttpPostedFileBase upload, BulkUpload model)
        {
            string info = "";

            try {
                // Check if the user has entered application ids
                if (model.Applications.Trim().Length > 0)
                {
                    string[] appications = model.Applications.Split(';');

                    string[] securityRoles = model.SecurityRoles.Split(';');

                    string[] permissionGroups = model.PermissionGroups.Split(';');

                    var file = new System.IO.StreamReader(upload.InputStream);

                    while (file.Peek() >= 0)
                    {
                        string line = file.ReadLine();

                        string[] fields = line.Split(',');

                        var bulkUser = new BulkUser();

                        bulkUser.Title      = fields[0];
                        bulkUser.GivenName  = fields[1];
                        bulkUser.MiddleName = fields[2];
                        bulkUser.Surname    = fields[3];
                        bulkUser.Email      = fields[4];
                        bulkUser.Password   = fields[5];

                        // call to creat user

                        // call
                    }
                }
                else
                {
                    // No Application entered
                    info = "No Application Ids entered.";
                }
            }
            catch (Exception exp)
            {
                info = exp.Message;
            }

            return(View());
        }
 public void UpdateTable(BulkUser bulkUser, string status)
 {
     try
     {
         if (_cc != null)
         {
             bulkUser.Status       = status;
             bulkUser.ModifiedDate = DateTime.UtcNow;
             _cc.Update(bulkUser);
             _cc.SaveChanges();
         }
     }
     catch (Exception ex)
     {
         _logger.LogError($"DbHelper-UpdateTable:Exception occured while updating the bulk user id {bulkUser.Id}");
         _logger.LogError(ex);
     }
 }
        private bool IsBulkUserValid(BulkUser bulkUser, string action)
        {
            var retVal = true;

            try
            {
                if (bulkUser == null || string.IsNullOrEmpty(action))
                {
                    return(false);
                }

                switch (action)
                {
                case CareStreamConst.Bulk_User_Create:
                case CareStreamConst.Bulk_User_Update:

                    #region Create || Update
                    if (bulkUser.FileId == 0)
                    {
                        return(false);
                    }

                    if (string.IsNullOrEmpty(bulkUser.Action))
                    {
                        return(false);
                    }

                    if (string.IsNullOrEmpty(bulkUser.UserPrincipalName))
                    {
                        return(false);
                    }

                    if (string.IsNullOrEmpty(bulkUser.DisplayName))
                    {
                        return(false);
                    }

                    if (string.IsNullOrEmpty(bulkUser.InitialPassword))
                    {
                        return(false);
                    }

                    #endregion

                    break;

                case CareStreamConst.Bulk_User_Invite:

                    #region Invite
                    if (bulkUser.FileId == 0)
                    {
                        return(false);
                    }

                    if (string.IsNullOrEmpty(bulkUser.Action))
                    {
                        return(false);
                    }

                    if (string.IsNullOrEmpty(bulkUser.InviteeEmail))
                    {
                        return(false);
                    }

                    if (string.IsNullOrEmpty(bulkUser.InviteRedirectURL))
                    {
                        return(false);
                    }


                    #endregion
                    break;

                case CareStreamConst.Bulk_User_Delete:

                    #region Create || Update
                    if (bulkUser.FileId == 0)
                    {
                        return(false);
                    }

                    if (string.IsNullOrEmpty(bulkUser.Action))
                    {
                        return(false);
                    }

                    if (string.IsNullOrEmpty(bulkUser.UserPrincipalName))
                    {
                        return(false);
                    }


                    #endregion
                    break;
                }
            }
            catch (Exception ex)
            {
                retVal = false;
                _logger.LogError("BulkUploadController-IsBulkUserValid: Exception occurred...");
                _logger.LogError(ex);
            }

            return(retVal);
        }
        private List <BulkUser> ProcessCSVAndCreateDbObject(CsvReader csvReader, string actionFor)
        {
            List <BulkUser> bulkUsers = new List <BulkUser>();

            try
            {
                if (csvReader != null)
                {
                    switch (actionFor)
                    {
                    case CareStreamConst.Bulk_User_Create:
                    case CareStreamConst.Bulk_User_Update:

                        #region Create || Update User

                        while (csvReader.Read())
                        {
                            BulkUser bulkUser = new BulkUser
                            {
                                Action       = actionFor,
                                Status       = CareStreamConst.Bulk_User_Loaded_Status,
                                CreatedDate  = DateTime.UtcNow,
                                ModifiedDate = DateTime.UtcNow
                            };

                            foreach (string header in csvReader.Context.HeaderRecord)
                            {
                                try
                                {
                                    switch (header.ToLower())
                                    {
                                    case CareStreamConst.BU_DisplayName:
                                        bulkUser.DisplayName = csvReader.GetField(header);
                                        break;

                                    case CareStreamConst.BU_UserPrincipalName:
                                        bulkUser.UserPrincipalName = csvReader.GetField(header);
                                        break;

                                    case CareStreamConst.BU_InitialPassword:
                                        bulkUser.InitialPassword = csvReader.GetField(header);
                                        break;

                                    case CareStreamConst.BU_BlockSignIn:
                                        var blockSignStr = csvReader.GetField(header);
                                        if (string.IsNullOrEmpty(blockSignStr))
                                        {
                                            bulkUser.BlockSignIn = false;
                                        }
                                        else if (blockSignStr.ToLower() == "yes")
                                        {
                                            bulkUser.BlockSignIn = true;
                                        }
                                        else
                                        {
                                            bulkUser.BlockSignIn = false;
                                        }
                                        break;

                                    case CareStreamConst.BU_FirstName:
                                        bulkUser.FirstName = csvReader.GetField(header);
                                        break;

                                    case CareStreamConst.BU_LastName:
                                        bulkUser.LastName = csvReader.GetField(header);
                                        break;

                                    case CareStreamConst.BU_JobTitle:
                                        bulkUser.JobTitle = csvReader.GetField(header);
                                        break;

                                    case CareStreamConst.BU_Department:
                                        bulkUser.Department = csvReader.GetField(header);
                                        break;

                                    case CareStreamConst.BU_Usagelocation:
                                        bulkUser.Usagelocation = csvReader.GetField(header);
                                        break;

                                    case CareStreamConst.BU_StreetAddress:
                                        bulkUser.StreetAddress = csvReader.GetField(header);
                                        break;

                                    case CareStreamConst.BU_State:
                                        bulkUser.State = csvReader.GetField(header);
                                        break;

                                    case CareStreamConst.BU_Country:
                                        bulkUser.Country = csvReader.GetField(header);
                                        break;

                                    case CareStreamConst.BU_Office:
                                        bulkUser.Office = csvReader.GetField(header);
                                        break;

                                    case CareStreamConst.BU_City:
                                        bulkUser.City = csvReader.GetField(header);
                                        break;

                                    case CareStreamConst.BU_ZIP:
                                        bulkUser.ZIP = csvReader.GetField(header);
                                        break;

                                    case CareStreamConst.BU_OfficePhone:
                                        bulkUser.OfficePhone = csvReader.GetField(header);
                                        break;

                                    case CareStreamConst.BU_MobilePhone:
                                        bulkUser.MobilePhone = csvReader.GetField(header);
                                        break;
                                    }
                                }
                                catch (Exception ex)
                                {
                                    _logger.LogError($"BulkUploadController-ProcessCSVAndCreateDbObject: Create || Update user error reading values for header- {header}");
                                    _logger.LogError(ex);
                                }
                            }

                            bulkUsers.Add(bulkUser);
                        }

                        #endregion

                        break;

                    case CareStreamConst.Bulk_User_Invite:

                        #region Invite User

                        while (csvReader.Read())
                        {
                            BulkUser bulkUser = new BulkUser
                            {
                                Action       = actionFor,
                                Status       = CareStreamConst.Bulk_User_Loaded_Status,
                                CreatedDate  = DateTime.UtcNow,
                                ModifiedDate = DateTime.UtcNow
                            };

                            foreach (string header in csvReader.Context.HeaderRecord)
                            {
                                try
                                {
                                    switch (header.ToLower())
                                    {
                                    case CareStreamConst.BU_InviteeEmail:
                                        bulkUser.InviteeEmail = csvReader.GetField(header);
                                        break;

                                    case CareStreamConst.BU_InviteRedirectURL:
                                        bulkUser.InviteRedirectURL = csvReader.GetField(header);
                                        break;

                                    case CareStreamConst.BU_CustomizedMessageBody:
                                        bulkUser.CustomizedMessageBody = csvReader.GetField(header);
                                        break;

                                    case CareStreamConst.BU_SendEmail:
                                        var blockSignStr = csvReader.GetField(header);
                                        if (string.IsNullOrEmpty(blockSignStr))
                                        {
                                            bulkUser.SendEmail = false;
                                        }
                                        else if (blockSignStr.ToLower() == "true")
                                        {
                                            bulkUser.SendEmail = true;
                                        }
                                        else
                                        {
                                            bulkUser.SendEmail = false;
                                        }
                                        break;
                                    }
                                }
                                catch (Exception ex)
                                {
                                    _logger.LogError($"BulkUploadController-ProcessCSVAndCreateDbObject: Invite user error reading values for header- {header}");
                                    _logger.LogError(ex);
                                }
                            }
                            bulkUsers.Add(bulkUser);
                        }
                        #endregion

                        break;

                    case CareStreamConst.Bulk_User_Delete:

                        #region Delete User

                        while (csvReader.Read())
                        {
                            BulkUser bulkUser = new BulkUser
                            {
                                Action       = actionFor,
                                Status       = CareStreamConst.Bulk_User_Loaded_Status,
                                CreatedDate  = DateTime.UtcNow,
                                ModifiedDate = DateTime.UtcNow
                            };
                            foreach (string header in csvReader.Context.HeaderRecord)
                            {
                                try
                                {
                                    switch (header.ToLower())
                                    {
                                    case CareStreamConst.BU_UserPrincipalName:
                                        bulkUser.UserPrincipalName = csvReader.GetField(header);
                                        break;
                                    }
                                }
                                catch (Exception ex)
                                {
                                    _logger.LogError($"BulkUploadController-ProcessCSVAndCreateDbObject: Delete user error reading values for header- {header}");
                                    _logger.LogError(ex);
                                }
                            }
                            bulkUsers.Add(bulkUser);
                        }
                        #endregion

                        break;
                    }
                }
            }
            catch (Exception ex)
            {
                _logger.LogError("BulkUploadController-ProcessCSVAndCreateDbObject: Exception occurred...");
                _logger.LogError(ex);
            }
            return(bulkUsers);
        }