Пример #1
0
        public IEnumerable <JSSEMain> AddModifyJsseMain(JSSEMain jsse)
        {
            EntityConnectionStringBuilder entityBuilder = new EntityConnectionStringBuilder(Global.jSSEConn);
            var jsseMain = DBGeneric.ExecInsertUpdateStoredProcedure <JSSEMain>(entityBuilder.ProviderConnectionString, "usp_JSSE_InsertUpdateJsseMain", new[] { "UserId", "JobName", "JobDescription" }, new[] { "1", jsse.JobName, jsse.JobDescription });

            return(jsseMain);
        }
Пример #2
0
        public int AddModifyJsseCategory(JSSEMain jsse, JSSECategory category)
        {
            EntityConnectionStringBuilder entityBuilder = new EntityConnectionStringBuilder(Global.jSSEConn);
            var majorGroupResults = DBGeneric.ExecInsertUpdateStoredProcedure(entityBuilder.ProviderConnectionString, "usp_JSSE_InsertUpdateJsseCategory", new[] { "JSSE_ID", "Hierarchy_ID", "Category_ID" }, new[] { Convert.ToString(jsse.JSSE_ID), Convert.ToString(jsse.Hierarchy_ID), Convert.ToString(category.Category_ID) });

            return(majorGroupResults);
        }
Пример #3
0
        public int UpdateJSSETemp(JSSEMain jsse, byte[] image, string imageName)
        {
            T_JSSE_Main jsseModel = new T_JSSE_Main();

            jsseModel.ModifiedBy = jsse.JSSEEnteredBy.ToLower().IndexOf("coned") >= 0 ? jsse.JSSEEnteredBy : "CONED\\" + jsse.JSSEEnteredBy;
            jsseModel.Location   = jsse.Location;
            jsseModel.Status     = jsse.JSSEStatus;
            jsseModel.Region_ID  = jsse.Region_ID;
            jsseModel.JSSEDate   = jsse.JSSEDate;
            jsseModel.JSSE_ID    = jsse.JSSE_ID;
            return(jsseRepo.UpdateJSSETemp(jsseModel, image, imageName));
        }
Пример #4
0
 public int InsertUpdateJSSE(JSSEMain jsse)
 {
     try
     {
         return(jsseRepo.InsertUpdateJSSE(jsse));
     }
     catch (Exception ex)
     {
         LogErrortoDatabase(ex, jsse.JSSEEnteredBy, "InsertUpdateJSSE");
         throw;
     }
 }
Пример #5
0
        public int AddModifyJSSE(JSSEMain jsse)
        {
            int result = 0;
            //add jsse, hierarchy, observee, observer
            var dbJsseMain = jsseRepo.AddModifyJsseMain(jsse).ToList()[0];

            jsse.JSSE_ID      = dbJsseMain.JSSE_ID;
            jsse.Hierarchy_ID = dbJsseMain.Hierarchy_ID;

            //add categories, comments
            foreach (JSSECategory category in jsse.Categories)
            {
                result = Convert.ToInt16(jsseRepo.AddModifyJsseCategory(jsse, category));
            }

            return(result);
        }
Пример #6
0
 public int UpdateJSSETempImage([FromBody] JSSEMain jsse)
 {
     byte[] image1 = Convert.FromBase64String(jsse.Image);
     return(jsseService.UpdateJSSETemp(jsse, image1, jsse.ImageName));
 }
Пример #7
0
 public int UpdateJSSETemp([FromBody] JSSEMain jsse)
 {
     return(jsseService.UpdateJSSETemp(jsse, null, null));
 }
Пример #8
0
 public int PutJSSE([FromBody] JSSEMain jsse)
 {
     // jsse.JSSEEnteredBy = HttpContext.Current.User.Identity.Name;
     return(jsseService.InsertUpdateJSSE(jsse));
 }
Пример #9
0
        public List <JSSEMain> GetUserJSSEs(JSSESearch jsseFilter)
        {
            List <JSSEMain> oJsses = new List <JSSEMain>();

            try
            {
                if (jsseFilter != null && !string.IsNullOrWhiteSpace(jsseFilter.UserName))
                {
                    bool isOwner = false;
                    jsseFilter.UserName = "******" + jsseFilter.UserName;//jsseFilter.UserName.ToLower().Replace("coned\\", "");
                    string[] ownerOrgs = jsseFilter.OwnerOrgIds.Split(',');
                    if (ownerOrgs.Any(o => o == jsseFilter.Org_Id.ToString()))
                    {
                        isOwner = true;
                    }
                    DateTime fromDate, toDate;
                    DateTime.TryParse(jsseFilter.FromDate, out fromDate);
                    DateTime.TryParse(jsseFilter.ToDate, out toDate);
                    var dbJsses = jsseRepo.GetUserOrgJSSEs(jsseFilter.Org_Id, jsseFilter.UserName, fromDate, toDate, isOwner);
                    foreach (var dbJSSE in dbJsses)
                    {
                        JSSEMain oJsse = new JSSEMain();
                        oJsse.JSSE_ID         = dbJSSE.JSSE_ID;
                        oJsse.Base64_JSSE_ID  = dbJSSE.JSSE_ID.ToString();//Crypto.EncryptStringAES(Convert.ToString(dbJSSE.JSSE_ID), "JSSE");
                        oJsse.JobName         = dbJSSE.JobName;
                        oJsse.JobDescription  = dbJSSE.JobDescription;
                        oJsse.JSSEDate        = dbJSSE.JSSEDate;
                        oJsse.Region_ID       = dbJSSE.Region_ID;
                        oJsse.Region          = dbJSSE.RegionName;
                        oJsse.Location        = dbJSSE.Location;
                        oJsse.JSSEEnteredBy   = dbJSSE.CreatedBy.ToLower().Replace("coned\\", "");
                        oJsse.CreatedDate     = dbJSSE.CreatedDate;
                        oJsse.JSSEStatus      = dbJSSE.Status;
                        oJsse.IsAnonymous     = dbJSSE.IsAnonymous;
                        oJsse.IsExternal      = dbJSSE.IsExternal;
                        oJsse.Org_Id          = dbJSSE.Org_Id;
                        oJsse.MajorGroup_Id   = dbJSSE.MajorGroup_Id;
                        oJsse.AttachmentCount = dbJSSE.AttachmentCount;
                        if (dbJSSE.Observees != null)
                        {
                            var             dbObservees = dbJSSE.Observees.Split(',');
                            List <UserInfo> observees   = new List <UserInfo>();
                            foreach (var dbObsrvee in dbObservees)
                            {
                                UserInfo observee = new UserInfo();
                                observee.FullName = dbObsrvee;
                                observees.Add(observee);
                            }
                            oJsse.Observees = observees.ToArray();
                        }
                        oJsse.IsCreator = false;
                        if (dbJSSE.Observer != null)
                        {
                            oJsse.Observer = new UserInfo()
                            {
                                FullName = dbJSSE.Observer, User_ID = dbJSSE.ObserverUserID.ToLower().Replace("coned\\", "")
                            };
                            if (oJsse.Observer.User_ID == jsseFilter.UserName.ToLower().Replace("coned\\", ""))
                            {
                                oJsse.IsCreator = true;
                            }
                        }
                        if (oJsse.JSSEEnteredBy == jsseFilter.UserName.ToLower().Replace("coned\\", ""))
                        {
                            oJsse.IsCreator = true;
                        }
                        if (ownerOrgs.Any(o => o == oJsse.Org_Id.ToString()))//&& oJsse.IsAnonymous == false
                        {
                            oJsse.IsCreator = true;
                        }
                        oJsses.Add(oJsse);
                    }
                }
            }
            catch
            {
                throw;
            }
            return(oJsses);
        }
Пример #10
0
        public JSSEMain GetJSSE(int jsseId)
        {
            JSSEMain oJsse = new JSSEMain();

            try
            {
                var dbJsses = jsseRepo.GetJSSE(jsseId).ToList();
                foreach (var dbJSSE in dbJsses)
                {
                    oJsse.IsAnonymous = dbJSSE.IsAnonymous;
                    //Observers
                    List <UserInfo> oObservers     = new List <UserInfo>();
                    List <UserInfo> oSupervisors   = new List <UserInfo>();
                    var             selObservers   = string.Empty;
                    var             selSupervisors = string.Empty;
                    foreach (var dbObserver in dbJSSE.T_JSSE_Observer.Where(j => j.Active == true))
                    {
                        UserInfo observer = new UserInfo();
                        observer.Emp_Id        = Convert.ToInt64(dbObserver.Emp_ID);
                        observer.FirstName     = dbObserver.FirstName;
                        observer.LastName      = dbObserver.LastName;
                        observer.FullName      = dbObserver.LastName + " , " + dbObserver.FirstName;
                        observer.MajorGroup_Id = Convert.ToString(dbObserver.T_JSSE_Hierarchy.MajorGroup_Id);
                        observer.Org_Id        = Convert.ToString(dbObserver.T_JSSE_Hierarchy.Org_Id);
                        observer.Dept_Id       = Convert.ToString(dbObserver.T_JSSE_Hierarchy.Dept_Id);
                        observer.Section_Id    = Convert.ToString(dbObserver.T_JSSE_Hierarchy.Sect_Id);
                        observer.User_ID       = dbObserver.User_Id;
                        observer.UserRole      = dbObserver.UserRole;
                        if (dbObserver.UserRole != "Supervisor")
                        {
                            oObservers.Add(observer);
                            if (!string.IsNullOrEmpty(selObservers))
                            {
                                selObservers = selObservers + "; " + observer.FullName;
                            }
                            else
                            {
                                selObservers = observer.FullName;
                            }
                        }
                        else
                        {
                            oSupervisors.Add(observer);
                            if (!string.IsNullOrEmpty(selSupervisors))
                            {
                                selSupervisors = selSupervisors + "; " + observer.FullName;
                            }
                            else
                            {
                                selSupervisors = observer.FullName;
                            }
                        }
                    }
                    if (oObservers.Count > 0)
                    {
                        if (string.IsNullOrEmpty(oObservers[0].UserRole))
                        {
                            oJsse.IsSupervsrOBSRSame = -1;
                        }
                        else
                        {
                            oJsse.IsSupervsrOBSRSame = 1;
                        }
                        if (oObservers[0].User_ID.ToLower() == "anonymous")
                        {
                            oJsse.IsOBSRAnonymous = true;
                        }
                        else
                        {
                            oJsse.IsOBSRAnonymous = false;
                        }
                        if (oSupervisors.Count > 0)
                        {
                            if (oObservers[0].Emp_Id != oSupervisors[0].Emp_Id)
                            {
                                oJsse.IsSupervsrOBSRSame = 0;
                            }
                            else
                            {
                                oJsse.IsSupervsrOBSRSame = 1;
                            }
                        }
                    }

                    oJsse.Observers      = oObservers.ToArray();
                    oJsse.SelObservers   = selObservers;
                    oJsse.Supervisors    = oSupervisors.ToArray();
                    oJsse.SelSupervisors = selSupervisors;
                    //Observees
                    List <UserInfo> oObservees   = new List <UserInfo>();
                    var             selObservees = string.Empty;
                    foreach (var dbObservee in dbJSSE.T_JSSE_Observee.Where(j => j.Active == true))
                    {
                        UserInfo observee = new UserInfo();
                        observee.Emp_Id        = Convert.ToInt64(dbObservee.Emp_ID);
                        observee.FirstName     = dbObservee.FirstName;
                        observee.LastName      = dbObservee.LastName;
                        observee.FullName      = dbObservee.LastName + " , " + dbObservee.FirstName;
                        observee.MajorGroup_Id = Convert.ToString(dbObservee.T_JSSE_Hierarchy.MajorGroup_Id);
                        observee.Org_Id        = Convert.ToString(dbObservee.T_JSSE_Hierarchy.Org_Id);
                        observee.Dept_Id       = Convert.ToString(dbObservee.T_JSSE_Hierarchy.Dept_Id);
                        observee.Section_Id    = Convert.ToString(dbObservee.T_JSSE_Hierarchy.Sect_Id);
                        observee.User_ID       = dbObservee.User_Id;
                        //observee.UserTitle = "User Title";
                        oObservees.Add(observee);
                        if (!string.IsNullOrEmpty(selObservees))
                        {
                            selObservees = selObservees + "; " + observee.FullName;
                        }
                        else
                        {
                            selObservees = observee.FullName;
                        }
                    }
                    oJsse.Observees    = oObservees.ToArray();
                    oJsse.SelObservees = selObservees;

                    oJsse.JSSE_ID        = dbJSSE.JSSE_ID;
                    oJsse.Base64_JSSE_ID = dbJSSE.JSSE_ID.ToString();//Crypto.DecryptStringAES(Convert.ToString(dbJSSE.JSSE_ID), "JSSE");
                    oJsse.JobName        = dbJSSE.JobName;
                    oJsse.JobDescription = dbJSSE.JobDescription;
                    oJsse.JSSEDate       = dbJSSE.JSSEDate;
                    oJsse.JSSEStatus     = dbJSSE.Status;
                    oJsse.Location       = dbJSSE.Location;
                    var createdId = dbJSSE.CreatedBy != "Anonymous" && !dbJSSE.CreatedBy.StartsWith("CONED") ? "CONED\\" + dbJSSE.CreatedBy : dbJSSE.CreatedBy;
                    if (dbJSSE.CreatedBy != "Anonymous")
                    {
                        var createdUser = JSSESecurityManager.GetUserInfo(createdId);
                        if (createdUser != null)
                        {
                            oJsse.JSSECreator = createdUser.LAST_NAME + ", " + createdUser.FIRST_NAME;
                        }
                        else
                        {
                            oJsse.JSSECreator = dbJSSE.CreatedBy;
                        }
                    }
                    else
                    {
                        oJsse.JSSECreator = dbJSSE.CreatedBy;
                    }
                    oJsse.JSSEEnteredBy = dbJSSE.CreatedBy;
                    oJsse.Region_ID     = dbJSSE.T_JSSE_Master_Region.Region_ID;
                    oJsse.Location      = dbJSSE.Location;
                    oJsse.MajorGroup_Id = Convert.ToInt32(oJsse.Observees[0].MajorGroup_Id);
                    oJsse.Org_Id        = Convert.ToInt32(oJsse.Observees[0].Org_Id);
                    oJsse.Dept_Id       = !string.IsNullOrEmpty(oJsse.Observees[0].Dept_Id) ? Convert.ToInt32(oJsse.Observees[0].Dept_Id) : 0;
                    oJsse.Section_Id    = !string.IsNullOrEmpty(oJsse.Observees[0].Section_Id) ? Convert.ToInt32(oJsse.Observees[0].Section_Id) : 0;
                    oJsse.Hierarchy_ID  = dbJSSE.T_JSSE_Observee.FirstOrDefault(d => d.Active == true) != null?dbJSSE.T_JSSE_Observee.FirstOrDefault(d => d.Active == true).T_JSSE_Hierarchy.Hierarchy_ID : 0;

                    //oJsse.majorgroups = GetMajorGroups().ToArray();
                    //oJsse.organizations = GetOrganizations(oJsse.MajorGroup_Id.ToString()).ToArray();
                    //oJsse.departments = GetDepartments(oJsse.Org_Id.ToString()).ToArray();
                    //oJsse.sections = GetSections(oJsse.Dept_Id.ToString()).ToArray();
                    List <JSSECategory> oSelCats = new List <JSSECategory>();


                    //Build the selected cats
                    foreach (var dbSelCat in dbJSSE.T_JSSE_Category.Where(j => j.Active == true))
                    {
                        JSSECategory oSelCat = new JSSECategory();
                        oSelCat.Category_ID = dbSelCat.T_JSSE_Master_Category.Category_ID;
                        if (dbSelCat.T_JSSE_Master_Rating != null)
                        {
                            oSelCat.RatingID = Convert.ToString(dbSelCat.T_JSSE_Master_Rating.Rating_ID);
                        }
                        else
                        {
                            oSelCat.RatingID = "0";
                        }
                        oSelCat.Comments = dbSelCat.T_JSSE_Comment.SingleOrDefault().Comment;
                        oSelCat.JSSE_ID  = dbSelCat.T_JSSE_Main.JSSE_ID;
                        oSelCat.IsActive = Convert.ToBoolean(dbSelCat.Active);

                        //Build the selecrted behs
                        List <JSSEBehavior> oSelBehs = new List <JSSEBehavior>();
                        foreach (var dbSelBeh in dbSelCat.T_JSSE_Behavior.Where(j => j.Active == true))
                        {
                            JSSEBehavior oSelBeh = new JSSEBehavior();
                            oSelBeh.Behavior_ID     = dbSelBeh.T_JSSE_Master_Behavior.Behavior_ID;
                            oSelBeh.BehaviorType_ID = dbSelBeh.T_JSSE_Master_Behavior.T_JSSE_Master_BehaviorType.BehaviorType_ID;
                            oSelBeh.Category_ID     = dbSelBeh.T_JSSE_Category.JSSECategory_ID;
                            if (dbSelBeh.T_JSSE_Master_Rating != null)
                            {
                                oSelBeh.Rating_ID = dbSelBeh.T_JSSE_Master_Rating.Rating_ID;
                                oSelBeh.Rating    = dbSelBeh.T_JSSE_Master_Rating.Rating;
                            }
                            else
                            {
                                oSelBeh.Rating_ID = 2; // if rating is blank for old records then rating is effective
                            }
                            oSelBeh.Comments = dbSelBeh.Comment;
                            oSelBeh.IsActive = Convert.ToBoolean(dbSelBeh.Active);
                            oSelBehs.Add(oSelBeh);
                        }
                        oSelCat.EntBehaviors = oSelBehs.ToArray();
                        oSelCats.Add(oSelCat);
                    }

                    //Can be fine-tuned later
                    List <JSSECategory> oAllCats = null;
                    if (oSelCats.Count > 0)
                    {
                        oAllCats = GetAllMasterCategories(oJsse.Org_Id);
                    }
                    else
                    {
                        oAllCats = GetAllActiveMasterCategories(oJsse.Org_Id);
                    }

                    foreach (var oSelCat in oSelCats)
                    {
                        foreach (var oCat in oAllCats)
                        {
                            if (oCat.Category_ID == oSelCat.Category_ID)
                            {
                                oCat.RatingID = oSelCat.RatingID;
                                oCat.Comments = oSelCat.Comments;
                                oCat.JSSE_ID  = oSelCat.JSSE_ID;

                                foreach (var oBeh in oCat.EntBehaviors)
                                {
                                    foreach (var oSelBeh in oSelCat.EntBehaviors)
                                    {
                                        if (oBeh.Behavior_ID == oSelBeh.Behavior_ID)
                                        {
                                            oBeh.BehviorChecked = true;
                                            oBeh.Category_ID    = oSelBeh.Category_ID;
                                            oBeh.Rating_ID      = oSelBeh.Rating_ID;
                                            oBeh.Rating         = oSelBeh.Rating;
                                            oBeh.Comments       = oSelBeh.Comments;
                                        }
                                    }
                                }
                                foreach (var oBeh in oCat.OrgBehaviors)
                                {
                                    foreach (var oSelBeh in oSelCat.EntBehaviors)
                                    {
                                        if (oBeh.Behavior_ID == oSelBeh.Behavior_ID)
                                        {
                                            oBeh.BehviorChecked = true;
                                            oBeh.Category_ID    = oSelBeh.Category_ID;
                                            oBeh.Rating_ID      = oSelBeh.Rating_ID;
                                            oBeh.Rating         = oSelBeh.Rating;
                                            oBeh.Comments       = oSelBeh.Comments;
                                        }
                                    }
                                }
                            }
                            oCat.EntBehaviors = oCat.EntBehaviors.Where(eb => eb.IsActive == true || eb.Category_ID != null).ToArray();
                            oCat.OrgBehaviors = oCat.OrgBehaviors.Where(ob => ob.IsActive == true || ob.Category_ID != null).ToArray();
                        }
                    }
                    oJsse.Categories = oAllCats.Where(c => c.IsActive == true || c.JSSE_ID != null).ToArray();


                    //Get the attachments for the JSSE
                    List <JSSEAttachment> oAttachments = new List <JSSEAttachment>();
                    foreach (var dbAttachment in dbJSSE.T_JSSE_Attachments.Where(j => j.Active == true))
                    {
                        JSSEAttachment attachment = new JSSEAttachment();
                        attachment.Title             = dbAttachment.Title;
                        attachment.Description       = dbAttachment.Description;
                        attachment.FileName          = dbAttachment.FileName;
                        attachment.Base64ImageString = CreateBase64Image(dbAttachment.Image);
                        oAttachments.Add(attachment);
                    }
                    oJsse.Attachments = oAttachments.ToArray();
                }
            }
            catch (Exception ex) { throw ex; }
            return(oJsse);
        }
Пример #11
0
        public int InsertUpdateJSSE(JSSEMain jsse)
        {
            EntityConnectionStringBuilder entityBuilder = new EntityConnectionStringBuilder(Global.jSSEConn);

            // Observee Data
            var dtObservees = new DataTable();

            dtObservees.Columns.Add("Row_ID", typeof(Int32));
            dtObservees.Columns.Add("Emp_Id", typeof(Int64));
            dtObservees.Columns.Add("User_ID", typeof(String));
            dtObservees.Columns.Add("FirstName", typeof(String));
            dtObservees.Columns.Add("LastName", typeof(String));

            // Observer Data
            var dtObservers = new DataTable();

            dtObservers.Columns.Add("Row_ID", typeof(Int32));
            dtObservers.Columns.Add("Emp_Id", typeof(Int64));
            dtObservers.Columns.Add("User_ID", typeof(String));
            dtObservers.Columns.Add("FirstName", typeof(String));
            dtObservers.Columns.Add("LastName", typeof(String));

            // Supervisor Data
            var dtSupervisors = new DataTable();

            dtSupervisors.Columns.Add("Row_ID", typeof(Int32));
            dtSupervisors.Columns.Add("Emp_Id", typeof(Int64));
            dtSupervisors.Columns.Add("User_ID", typeof(String));
            dtSupervisors.Columns.Add("FirstName", typeof(String));
            dtSupervisors.Columns.Add("LastName", typeof(String));

            // Jsse Categories Data
            var dtCategories = new DataTable();

            dtCategories.Columns.Add("Row_ID", typeof(Int32));
            dtCategories.Columns.Add("Category_ID", typeof(Int32));
            dtCategories.Columns.Add("Rating_ID", typeof(Int32));
            dtCategories.Columns.Add("Behavior_IDs", typeof(String));
            dtCategories.Columns.Add("BehaviorType_IDs", typeof(String));
            dtCategories.Columns.Add("Comment", typeof(String));

            // Jsse Behaviors Data
            var dtBehaviors = new DataTable();

            dtBehaviors.Columns.Add("Row_ID", typeof(Int32));
            dtBehaviors.Columns.Add("Category_ID", typeof(Int32));
            dtBehaviors.Columns.Add("Rating_ID", typeof(Int32));
            dtBehaviors.Columns.Add("Behavior_ID", typeof(Int32));
            dtBehaviors.Columns.Add("BehaviorType_ID", typeof(Int32));
            dtBehaviors.Columns.Add("Comment", typeof(String));

            DataRow dtRow; int jsseMain;

            try
            {
                //in case non-anonymous Observee, get the Observee Major group details
                if (jsse.IsAnonymous == false)
                {
                    jsse.MajorGroup_Id = Convert.ToInt32(jsse.Observees.FirstOrDefault().MajorGroup_Id);
                    jsse.Org_Id        = Convert.ToInt32(jsse.Observees.FirstOrDefault().Org_Id);
                    jsse.Dept_Id       = Convert.ToInt32(jsse.Observees.FirstOrDefault().Dept_Id);
                    jsse.Section_Id    = Convert.ToInt32(jsse.Observees.FirstOrDefault().Section_Id);


                    for (int i = 0; i < jsse.Observees.Length; i++)
                    {
                        dtRow              = dtObservees.NewRow();
                        dtRow["Row_ID"]    = i + 1;
                        dtRow["Emp_Id"]    = jsse.Observees[i].Emp_Id;
                        dtRow["User_ID"]   = jsse.Observees[i].User_ID;
                        dtRow["FirstName"] = jsse.Observees[i].FirstName;
                        dtRow["LastName"]  = jsse.Observees[i].LastName;
                        dtObservees.Rows.Add(dtRow);
                    }
                }
                else
                {
                    // jsse.JSSEEnteredBy = "Anonymous";
                    dtRow              = dtObservees.NewRow();
                    dtRow["Row_ID"]    = 1;
                    dtRow["Emp_Id"]    = 0;
                    dtRow["User_ID"]   = "Anonymous";
                    dtRow["FirstName"] = "Anonymous";
                    dtRow["LastName"]  = "Anonymous";
                    dtObservees.Rows.Add(dtRow);
                }

                //in case non-anonymous Observer
                if (jsse.IsOBSRAnonymous == false)
                {
                    for (int i = 0; i < jsse.Observers.Length; i++)
                    {
                        dtRow              = dtObservers.NewRow();
                        dtRow["Row_ID"]    = i + 1;
                        dtRow["Emp_Id"]    = jsse.Observers[i].Emp_Id;
                        dtRow["User_ID"]   = jsse.Observers[i].User_ID;
                        dtRow["FirstName"] = jsse.Observers[i].FirstName;
                        dtRow["LastName"]  = jsse.Observers[i].LastName;
                        dtObservers.Rows.Add(dtRow);
                    }
                    ////add supervisor ------Hold and comment below untill Supervisor to be shown on UI
                    //if (jsse.IsAnonymous == true)
                    //{
                    //    dtRow = dtSupervisors.NewRow();
                    //    dtRow["Row_ID"] = 1;
                    //    dtRow["Emp_Id"] = 0;
                    //    dtRow["User_ID"] = "Anonymous";
                    //    dtRow["FirstName"] = "Anonymous";
                    //    dtRow["LastName"] = "Anonymous";
                    //    dtSupervisors.Rows.Add(dtRow);
                    //}
                    //else if(jsse.IsSupervsrOBSRSame != 1)
                    //{
                    //    if (jsse.Supervisors.Length > 0)
                    //    {
                    //        dtRow = dtSupervisors.NewRow();
                    //        dtRow["Row_ID"] = 1;
                    //        dtRow["Emp_Id"] = jsse.Supervisors[0].Emp_Id;
                    //        dtRow["User_ID"] = jsse.Supervisors[0].User_ID;
                    //        dtRow["FirstName"] = jsse.Supervisors[0].FirstName;
                    //        dtRow["LastName"] = jsse.Supervisors[0].LastName;
                    //        dtSupervisors.Rows.Add(dtRow);
                    //    }
                    //}
                }
                else
                {
                    dtRow              = dtObservers.NewRow();
                    dtRow["Row_ID"]    = 1;
                    dtRow["Emp_Id"]    = 0;
                    dtRow["User_ID"]   = "Anonymous";
                    dtRow["FirstName"] = "Anonymous";
                    dtRow["LastName"]  = "Anonymous";
                    dtObservers.Rows.Add(dtRow);

                    ////add supervisor ------Hold and comment below untill Supervisor to be shown on UI
                    //if (jsse.IsSupervsrOBSRSame == 1 || jsse.IsAnonymous==true)
                    //{
                    //    dtRow = dtSupervisors.NewRow();
                    //    dtRow["Row_ID"] = 1;
                    //    dtRow["Emp_Id"] = 0;
                    //    dtRow["User_ID"] = "Anonymous";
                    //    dtRow["FirstName"] = "Anonymous";
                    //    dtRow["LastName"] = "Anonymous";
                    //    dtSupervisors.Rows.Add(dtRow);
                    //}
                    //else
                    //{
                    //    if (jsse.Supervisors.Length > 0)
                    //    {
                    //        dtRow = dtSupervisors.NewRow();
                    //        dtRow["Row_ID"] = 1;
                    //        dtRow["Emp_Id"] = jsse.Supervisors[0].Emp_Id;
                    //        dtRow["User_ID"] = jsse.Supervisors[0].User_ID;
                    //        dtRow["FirstName"] = jsse.Supervisors[0].FirstName;
                    //        dtRow["LastName"] = jsse.Supervisors[0].LastName;
                    //        dtSupervisors.Rows.Add(dtRow);
                    //    }
                    //}
                }
                string[] Behavs   = new string[2];
                string[] BehavTys = new string[2];

                int rowId    = 1;
                int behRowId = 1;
                //int behOrgRowId = 1;
                for (int i = 0; i < jsse.Categories.Length; i++)
                {
                    if (jsse.Categories[i].RatingID != null || (jsse.Categories[i].Comments != null && jsse.Categories[i].Comments != ""))
                    {
                        dtRow                = dtCategories.NewRow();
                        dtRow["Row_ID"]      = rowId;
                        dtRow["Category_ID"] = jsse.Categories[i].Category_ID;
                        if (jsse.Categories[i].RatingID == "0" || jsse.Categories[i].RatingID == null)
                        {
                            dtRow["Rating_ID"] = DBNull.Value;
                        }
                        else
                        {
                            dtRow["Rating_ID"] = jsse.Categories[i].RatingID;
                        }

                        if (jsse.Categories[i].EntBehaviors.Length > 0)
                        {
                            Behavs[0]   = string.Join(",", jsse.Categories[i].EntBehaviors.Where(x => x.BehviorChecked).Select(x => x.Behavior_ID.ToString()).ToArray());
                            BehavTys[0] = string.Join(",", jsse.Categories[i].EntBehaviors.Where(x => x.BehviorChecked).Select(x => x.BehaviorType_ID.ToString()).ToArray());
                        }
                        if (jsse.Categories[i].OrgBehaviors.Length > 0)
                        {
                            Behavs[1]   = string.Join(",", jsse.Categories[i].OrgBehaviors.Where(y => y.BehviorChecked).Select(y => y.Behavior_ID.ToString()).ToArray());
                            BehavTys[1] = string.Join(",", jsse.Categories[i].OrgBehaviors.Where(x => x.BehviorChecked).Select(x => x.BehaviorType_ID.ToString()).ToArray());
                        }
                        dtRow["Behavior_IDs"]     = string.Join(",", Behavs);
                        dtRow["BehaviorType_IDs"] = string.Join(",", BehavTys);
                        dtRow["Comment"]          = jsse.Categories[i].Comments;
                        dtCategories.Rows.Add(dtRow);

                        rowId = rowId + 1;
                    }


                    for (int beh = 0; beh < jsse.Categories[i].EntBehaviors.Length; beh++)
                    {
                        var currBeh = jsse.Categories[i].EntBehaviors[beh];
                        if (currBeh.Rating_ID != null)
                        {
                            dtRow                = dtBehaviors.NewRow();
                            dtRow["Row_ID"]      = behRowId;
                            dtRow["Category_ID"] = jsse.Categories[i].Category_ID;
                            if (currBeh.Rating_ID == null)
                            {
                                dtRow["Rating_ID"] = DBNull.Value;
                            }
                            else
                            {
                                dtRow["Rating_ID"] = currBeh.Rating_ID;
                            }

                            dtRow["Behavior_ID"]     = currBeh.Behavior_ID;
                            dtRow["BehaviorType_ID"] = currBeh.BehaviorType_ID;
                            dtRow["Comment"]         = currBeh.Comments;
                            dtBehaviors.Rows.Add(dtRow);

                            behRowId = behRowId + 1;
                        }
                    }


                    for (int beh = 0; beh < jsse.Categories[i].OrgBehaviors.Length; beh++)
                    {
                        var currBeh = jsse.Categories[i].OrgBehaviors[beh];
                        if (currBeh.Rating_ID != null)
                        {
                            dtRow                = dtBehaviors.NewRow();
                            dtRow["Row_ID"]      = behRowId;
                            dtRow["Category_ID"] = jsse.Categories[i].Category_ID;
                            if (currBeh.Rating_ID == null)
                            {
                                dtRow["Rating_ID"] = DBNull.Value;
                            }
                            else
                            {
                                dtRow["Rating_ID"] = currBeh.Rating_ID;
                            }

                            dtRow["Behavior_ID"]     = currBeh.Behavior_ID;
                            dtRow["BehaviorType_ID"] = currBeh.BehaviorType_ID;
                            dtRow["Comment"]         = currBeh.Comments;
                            dtBehaviors.Rows.Add(dtRow);

                            behRowId = behRowId + 1;
                        }
                    }
                }

                // Jsse Attachments Data
                var dtAttachments = new DataTable();
                dtAttachments.Columns.Add("Row_ID", typeof(Int32));
                dtAttachments.Columns.Add("Title", typeof(String));
                dtAttachments.Columns.Add("Description", typeof(String));
                dtAttachments.Columns.Add("FileName", typeof(String));
                dtAttachments.Columns.Add("Image", typeof(byte[]));

                for (int i = 0; i < jsse.Attachments.Length; i++)
                {
                    dtRow                = dtAttachments.NewRow();
                    dtRow["Row_ID"]      = i + 1;
                    dtRow["Title"]       = jsse.Attachments[i].Title;
                    dtRow["Description"] = jsse.Attachments[i].Description;
                    dtRow["FileName"]    = jsse.Attachments[i].FileName;
                    dtRow["Image"]       = Convert.FromBase64String(jsse.Attachments[i].Base64ImageString);
                    dtAttachments.Rows.Add(dtRow);
                }

                List <SqlParameter> sParams = new List <SqlParameter>()
                {
                    new SqlParameter("@JSSE_ID", jsse.JSSE_ID),
                    new SqlParameter("@JobName", jsse.JobName),
                    new SqlParameter("@JobDescription", jsse.JobDescription),
                    new SqlParameter("@IsAnonymous", jsse.IsAnonymous),
                    new SqlParameter("@IsExternal", false),
                    new SqlParameter("@Status", jsse.JSSEStatus),
                    new SqlParameter("@Region_ID", jsse.Region_ID),
                    new SqlParameter("@JSSEDate", jsse.JSSEDate == null ? DateTime.Now : jsse.JSSEDate),
                    new SqlParameter("@MajorGroup_Id", jsse.MajorGroup_Id),
                    new SqlParameter("@Org_Id", jsse.Org_Id),
                    new SqlParameter("@Dept_Id", jsse.Dept_Id),
                    new SqlParameter("@Sect_Id", jsse.Section_Id),
                    new SqlParameter("@JSSEEnteredBy", jsse.JSSEEnteredBy),
                    new SqlParameter("@Location", jsse.Location),
                    new SqlParameter()
                    {
                        ParameterName = "@Categories", SqlDbType = SqlDbType.Structured, Value = dtCategories
                    },
                    new SqlParameter()
                    {
                        ParameterName = "@Behaviors", SqlDbType = SqlDbType.Structured, Value = dtBehaviors
                    },
                    new SqlParameter()
                    {
                        ParameterName = "@Observees", SqlDbType = SqlDbType.Structured, Value = dtObservees
                    },
                    new SqlParameter()
                    {
                        ParameterName = "@Observers", SqlDbType = SqlDbType.Structured, Value = dtObservers
                    },
                    new SqlParameter()
                    {
                        ParameterName = "@Supervisor", SqlDbType = SqlDbType.Structured, Value = dtSupervisors
                    },
                    new SqlParameter()
                    {
                        ParameterName = "@Attachments", SqlDbType = SqlDbType.Structured, Value = dtAttachments
                    }
                };

                jsseMain = DBGeneric.ExecStoredProcedureWithSqlParms(entityBuilder.ProviderConnectionString, "usp_JSSE_InsertUpdateJsse", sParams.ToArray());
            }
            catch (Exception ex)
            {
                throw ex;
            }

            return(jsseMain);
        }