コード例 #1
0
        public ActionResult Load(HttpPostedFileBase idUploadFile, ImportO2SModel model)
        {
            var path = string.Empty;
            try
            {
                ImportHelper pImportHelper = new ImportHelper();

                //If user has already customers, set IsUpdateMode to true by default
                if (CustomerProspectBL.GetCustomerByIdUserCreated(SessionManager.GetUserSession().idUser).Count() > 0)
                {
                    //model.IsUpdateMode = true;
                    model.ImportMode = (int)ImportO2SModel.ModeOfImport.Update;
                }

                //  if (ModelState.IsValid)
                {
                    // Verify that the user selected a file
                    if (idUploadFile != null && idUploadFile.ContentLength > 0)
                    {

                        // extract only the fielname
                        var fileName = string.Format("{0}-{1}", DateTime.Now.ToString("ddMMyyyy"), Path.GetFileName(idUploadFile.FileName));

                        path = Path.Combine(Server.MapPath("~/uploads"), fileName);

                        if (!Directory.Exists(Server.MapPath("~/uploads")))
                            Directory.CreateDirectory(Server.MapPath("~/uploads"));


                        // ImportHelper pImportHelper = new ImportHelper(); 
                        //pImportHelper.TestGetByName();
                        //  pImportHelper.Load(path);

                        //2014-07-29 : Check file extension
                        if (Path.GetExtension(path).Equals(".xlsx") || Path.GetExtension(path).Equals(".xls"))
                        {
                            idUploadFile.SaveAs(path);
                            // ViewData["FileFullPath"] = path;

                            model.SheetNames = pImportHelper.GetSheetNames(path);
                            if (model.SheetNames.Count == 1)
                            {
                                model.SelectedSheetName = model.SheetNames[0].Value;
                                model.ColumnNames = pImportHelper.GetUsableColumnNames(path, model.SelectedSheetName);
                            }
                            model.FullFilePath = path;


                            //prendre la liste des conseillers principaux
                            model.ListAdvisers = pImportHelper.GetListConseillerPrincicpal(model.FullFilePath, model.SelectedSheetName);

                            //prendre et charger la liste de tous ces **** de client
                            if (SessionManager.GetUserSession().CanViewAdvisersList())
                            {
                                bool filterAdvisersByUserFirm = (SessionManager.GetUserSession().IsAdministrativeAssistant()) ? true : false;
                                var lstAdvisers = Business.Configuration.FirmInstitutionAdviserBL.GetAdvisersByIdFirmParent(SessionManager.GetFirmInstitutionSession(), SessionManager.GetUserSession(), filterAdvisersByUserFirm, false)
                                                       .GroupBy(a => a.idUser)
                                                       .Select(ad => ad.First())
                                                       .OrderBy(a => a.User.UserName)
                                                       .ToList<FirmInstitutionAdviser>();


                                //List<FirmInstitutionAdviser> lstAdvisers = FirmInstitutionAdviserBL.GetAdvisers(SessionManager.GetFirmInstitutionSession(), false);
                                model.ListAdvisersFromDatabase = new List<SelectListItem>();

                                //add vide
                                model.ListAdvisersFromDatabase.Add(new SelectListItem() { Text = "", Value = "" });

                                foreach (var adviser in lstAdvisers)
                                {
                                    model.ListAdvisersFromDatabase.Add(new SelectListItem() { Text = string.Format("{0}, {1}, {2}", adviser.User.UserName, adviser.User.UserFirstName, adviser.User.UserEmail), Value = adviser.User.idUser.ToString() });
                                }
                            }
                            else
                            {
                                bool isEmpty = CustomerProspectBL.IsProspectForCGPEmpty(SessionManager.GetUserSession().idUser, model.IsCustomer);

                                model.InitilizationModeChecked = isEmpty;//utilisé ??
                                model.UpdateModeChecked = !isEmpty; //utilisé ??
                                if (isEmpty)
                                    model.ImportMode = (int)ImportO2SModel.ModeOfImport.Initialisation;
                                else
                                    model.ImportMode = (int)ImportO2SModel.ModeOfImport.Update;
                            }
                        }
                        else
                        {
                            //2014-07-29 : Error File not supported
                            ViewBag.Error = LanguageData.GetContent("seul_excel_autorise");
                        }

                        return View("ImportO2Harvest", model);
                    }
                    else
                    {
                        ViewBag.Error = LanguageData.GetContent("verifier_fichier_a_uploader");
                        return View("ImportO2Harvest", model);
                    }


                }
                // ViewBag.Error = "Veuillez vérifier les champs obligatoires.";

            }
            catch (Exception ex)
            {
                Log.AppendException(ex); ;
                ViewBag.Error = string.Format("{0} : {1}", LanguageData.GetContent("erreur_import"), ex.Message);
            }

            return View("ImportO2Harvest");
        }
コード例 #2
0
        public ActionResult ProcessImportO2Harvest(ImportO2SModel model)
        {
            try
            {
                ImportHelper pImportHelper = new ImportHelper();
               
                //correspondance des advisers
                Dictionary<string, Guid> dicAdvisers = new Dictionary<string, Guid>();

                if (SessionManager.GetUserSession().IsAdmin())
                {
                    //prendre et charger la liste de tous ces **** de client
                    List<FirmInstitutionAdviser> lstAdvisers = FirmInstitutionAdviserBL.GetAdvisers(!model.idFirmInstitution.HasValue ? SessionManager.GetFirmInstitutionSession() : FirmInstitutionBL.GetFirmInstitutionByIdFirmInstitution(model.idFirmInstitution.Value), false);
                    model.ListAdvisersFromDatabase = new List<SelectListItem>();
                    foreach (var adviser in lstAdvisers)
                    {
                        model.ListAdvisersFromDatabase.Add(new SelectListItem() { Text = string.Format("{0}, {1}, {2}", adviser.User.UserName, adviser.User.UserFirstName, adviser.User.UserEmail), Value = adviser.User.idUser.ToString() });
                    }


                    model.ListAdvisers = pImportHelper.GetListConseillerPrincicpal(model.FullFilePath, model.SelectedSheetName);

                    //TODO : Otran ts mety ilay samy dropdown a

                    //prendre la correspondance des advisers selon l'admin
                    foreach (var importAdvisers in model.ListAdvisers)
                    {
                        string adviserKey = "Advisers_" + importAdvisers.Value.Replace(" ", "_");
                        string adviserFromDatabaseKey = "AdvisersFromDatabase_" + importAdvisers.Value.Replace(" ", "_");

                        if (!string.IsNullOrEmpty(Request.Params[adviserKey].ToString()) && !string.IsNullOrEmpty(Request.Params[adviserFromDatabaseKey].ToString()))
                        {
                            dicAdvisers.Add(/*importAdvisers.Value*/Request.Params[adviserKey], new Guid(Request.Params[adviserFromDatabaseKey]));
                        }
                    }
                }

                if (ModelState.IsValid && !string.IsNullOrEmpty(model.FullFilePath))
                {
                    int mode = Convert.ToInt32(Request["ImportMode"]);
                    model.ImportMode = mode;
                    int total = 0, vita = 0;
                    IList<ImportErrorModel> errorsList = new List<ImportErrorModel>();

                    //TODO:add DIC
                    vita = pImportHelper.ImportProcessing(model, out  total, out errorsList, model.SelectedSheetName, false, CSV.DEFAULT_DELIMITER, dicAdvisers);

                    ViewBag.Message = string.Format("{0} {1} / {2}", LanguageData.GetContent("nb_ligne_importées"), vita, total);

                    if (errorsList.Count > 0)
                    {
                        ViewBag.Errors = errorsList;
                    }

                    model.CanImportNewFile = true;

                    return View("ImportO2Harvest", model);
                }
                else ViewBag.Error = LanguageData.GetContent("verifier_champs_obligatoires");
            }
            catch (Exception ex)
            {
                Log.AppendException(ex); ;

                ViewBag.Error = string.Format("{0} : {1}", LanguageData.GetContent("erreur_import"), ex.Message);
            }

            model.ColumnNames = new ImportHelper().GetUsableColumnNames(model.FullFilePath, model.SelectedSheetName);
            model.SheetNames = new ImportHelper().GetSheetNames(model.FullFilePath);
            model.IsSheetNameSelection = true;
            return View("ImportO2Harvest", model);

        }