public ActionResult StudyStatusesMapper(StudyStatusesModel model)
        {
            try
            {
                if (model.localStatus == null)
                {
                    TempData["message"] = "local study status cannot be empty";


                    return(RedirectToAction("StudyStatusesMapper"));
                }
                else
                {
                    mapManager.CreateMapper(new DataSourceStudyStatus()
                    {
                        StudyStatusName = model.dataSourceStatus
                    }, new LocalStudyStatus()
                    {
                        StudyStatusName = model.localStatus
                    }, int.Parse(model.groups), new DataSource {
                        DataSourceName = model.datasource
                    });
                    TempData["message"] = "Mapped successfully";
                    return(RedirectToAction("StudyStatusesMapper"));
                }
            }
            catch (StatusMappingException ex)
            {
                return(View("Error"));
            }
        }
 /// <summary>
 /// This method Updates the Status Already mapped.
 /// </summary>
 /// <param name="model"></param>
 /// <returns></returns>
 public JsonResult UpdateStatusMap(StudyStatusesModel model)
 {
     try
     {
         if (model.localStatus == "" || model.localStatus == null)
         {
             return(Json("Unable to update"));
         }
         else
         {
             mapManager.UpdateMapper(int.Parse(model.MapID), new LocalStudyStatus()
             {
                 StudyStatusName = model.localStatus
             });
             string message = "Sucessfully Updated";
             return(Json(message));
         }
     }
     catch (Exception e)
     {
         return(Json("Unable to update"));
     }
 }
        public ActionResult RenderMapper(string groupID)
        {
            StudyStatusesModel m = new StudyStatusesModel();

            m.groups = groupID;

            List <StudyStatusMapping> mappedStatus;

            try
            {
                mappedStatus = statusMap.GetAll().Where <StudyStatusMapping>(x => x.GroupID == int.Parse(groupID)).ToList <StudyStatusMapping>();
            }
            catch (Exception ex)
            {
                return(View("Error"));
            }
            List <DataSourceStudyStatus> statuses       = dsStatusGetter.GetAllStatus().ToList <DataSourceStudyStatus>();
            List <SelectListItem>        statusItemList = new List <SelectListItem>();
            List <DataSourceStudyStatus> tempStatus     = new List <DataSourceStudyStatus>();

            foreach (var item in statuses)
            {
                try
                {
                    if (mappedStatus.Where <StudyStatusMapping>(x => x.DataSourceStudyStatus.StudyStatusName == item.StudyStatusName).FirstOrDefault <StudyStatusMapping>() == null)
                    {
                        tempStatus.Add(item);
                    }
                    //choose the status which havnt been mapped
                }
                catch (Exception ex)
                {
                    return(View("Error"));
                }
            }

            statuses = tempStatus;

            foreach (var item in statuses)
            {
                SelectListItem tempItem = new SelectListItem();
                tempItem.Text  = item.StudyStatusName;
                tempItem.Value = item.StudyStatusName;
                statusItemList.Add(tempItem);
            }

            if (statusItemList.Count == 0)
            {
                ViewBag.dataSourceStatusState = "empty";
            }
            else
            {
                ViewBag.dataSourceStatus = statusItemList;
            }



            List <DataSource>     dataSources        = dataSourceGetter.GetAll().ToList <DataSource>();
            List <SelectListItem> dataSourceItemList = new List <SelectListItem>();

            foreach (var item in dataSources)
            {
                SelectListItem tempItem = new SelectListItem();
                tempItem.Text  = item.DataSourceName;
                tempItem.Value = item.DataSourceName;
                dataSourceItemList.Add(tempItem);
            }
            ViewBag.dataSource = dataSourceItemList;
            return(PartialView(m));
        }