示例#1
0
        public ActionResult UploadExcelMembersFile(string fileType)
        {
            Dictionary <int, string> returnMsgDictinary = new Dictionary <int, string>();
            FileHandleDetails        fileHandleDetails  = new FileHandleDetails();

            SetDictinaryReturnMsg(returnMsgDictinary);
            var    context       = System.Web.HttpContext.Current.Request;
            string fileName      = null;
            string pathDirectory = null;
            string validateMsg;

            //Core.Services.Logger.InsertHovalaLog(LogType.Debug, "UploadExcelhovalaFile", System.Web.HttpContext.Current.User.Identity.Name);

            if (context.Files != null && context.Files.Count > 0)
            {
                try
                {
                    HttpPostedFile file = context.Files["file"];
                    if (file != null)
                    {
                        //This one take a lot of time
                        if (Enum.IsDefined(typeof(ExcelFileType), fileType) == false)
                        {
                            fileHandleDetails.FileUploadMsg = returnMsgDictinary[(int)FileReturnMsg.FileTypeIncorrect];
                            return(Content(new JavaScriptSerializer().Serialize(fileHandleDetails)));
                        }
                        if (CheckIsUploadFileExcelFormat(file) == false)
                        {
                            fileHandleDetails.FileUploadMsg = returnMsgDictinary[(int)FileReturnMsg.FileExtensionIncorrect];
                            return(Content(new JavaScriptSerializer().Serialize(fileHandleDetails)));
                        }
                        //If file is OK saving it to folder
                        switch ((ExcelFileType)Enum.Parse(typeof(ExcelFileType), fileType))
                        {
                        case ExcelFileType.CoecoMembers:
                            pathDirectory = ConfigurationManager.AppSettings["SaveUploadedMembersFilePath"];
                            break;
                        }


                        fileName = CheckIsFilesSameByByteAndSave(fileType, file, pathDirectory);

                        if (fileName == null)
                        {
                            fileName = SaveUploadExcelFile(System.Web.HttpContext.Current.User.Identity.Name, file, pathDirectory, fileType);
                        }

                        validateMsg = _fileHandle.ReadMembersExcelFile(file.FileName, pathDirectory, fileName, System.Web.HttpContext.Current.User.Identity.Name, fileHandleDetails);

                        if (validateMsg == FileReturnMsg.DuplicatedRowsProblem.ToString())
                        {
                            return(SetDataForReturnAndDeleteFileWithLog(returnMsgDictinary[(int)FileReturnMsg.DuplicatedRowsProblem], fileHandleDetails, false, true, fileName));
                        }
                        else if (validateMsg == FileReturnMsg.FileWasHandle.ToString())
                        {
                            validateMsg = returnMsgDictinary[(int)FileReturnMsg.FileWasHandle];
                        }
                        else if (validateMsg == FileReturnMsg.MainUploadFileFailed.ToString())
                        {
                            validateMsg = returnMsgDictinary[(int)FileReturnMsg.MainUploadFileFailed];
                        }

                        return(SetDataForReturnAndDeleteFileWithLog(validateMsg, fileHandleDetails, true));
                    }


                    else
                    {
                        return(SetDataForReturnAndDeleteFileWithLog(returnMsgDictinary[(int)FileReturnMsg.NoFileToUpload], fileHandleDetails, false));
                    }
                }
                catch (Exception ex)
                {
                    _loggerService.InsertLogMessage(LogType.Error.ToString(), $"Failed on UploadExcelMembersFile {ex.ToString()}", System.Web.HttpContext.Current.User.Identity.Name);
                    return(SetDataForReturnAndDeleteFileWithLog(returnMsgDictinary[(int)FileReturnMsg.ErrorUploadFile], fileHandleDetails, false, true, fileName));
                }
            }
            return(SetDataForReturnAndDeleteFileWithLog(returnMsgDictinary[(int)FileReturnMsg.NoFileToUpload], fileHandleDetails, false));
        }