/// <summary> /// Update Execise Video To Fitcom sprout server /// </summary> /// <param name="sPath"></param> /// <param name="exerciseId"></param> /// <param name="sproudId"></param> private void UpdateExeciseVideoToFitcom(string sPath, int exerciseId, string sproudId) { try { GetSingleExeciseVideo(); using (WebClient httpWebClient = new WebClient()) { httpWebClient.Headers[ConstantHelper.constSproutVideoApiKey] = ConstantHelper.constSproutVideoApiKeyValue; httpWebClient.Headers[HttpRequestHeader.Host] = ConstantHelper.constSproutHost; string replacedExerciseWepApi = string.Format(ConstantHelper.constSproutReplacedUploadApi, sproudId); Uri replacedUrl = new Uri(replacedExerciseWepApi); var uploadedExecisedata = httpWebClient.UploadFile(replacedUrl, "POST", sPath); if (uploadedExecisedata != null) { if (System.IO.File.Exists(sPath)) { System.IO.File.Delete(sPath); } var uploadesfile = System.Text.Encoding.ASCII.GetString(uploadedExecisedata); if (uploadesfile != null) { ExerciseVideoResponse response = JsonConvert.DeserializeObject <ExerciseVideoResponse>(uploadesfile); if (response != null) { UpdateExerciseSproutLink objUpdateExerciseSproutLink = new UpdateExerciseSproutLink { SecuryId = response.security_token, VideoId = response.id, V1080pUrl = response.assets.videos._1080p, V240pUrl = response.assets.videos._240p, V360pUrl = response.assets.videos._360p, V480pUrl = response.assets.videos._480p, V720pUrl = response.assets.videos._720p, ThumnailUrl = response.assets.thumbnails[0], ExerciseId = exerciseId }; // Get all details of ExerciseBL.UpdateExerciseSproutData(objUpdateExerciseSproutLink); } } } System.IO.File.Delete(sPath); } } catch (WebException ex) { LogManager.LogManagerInstance.WriteErrorLog(ex); throw; } catch (Exception ex) { LogManager.LogManagerInstance.WriteErrorLog(ex); throw; } }
private void UploadExecelToFitcom(string sPath) { try { using (WebClient httpWebClient = new WebClient()) { httpWebClient.Headers[ConstantHelper.constSproutVideoApiKey] = ConstantHelper.constSproutVideoApiKeyValue; httpWebClient.Headers[HttpRequestHeader.Host] = ConstantHelper.constSproutHost; Uri uploadExerciseUri = new Uri(ConstantHelper.constSproutUploadApi); var uploadedExecisedata = httpWebClient.UploadFile(uploadExerciseUri, "POST", sPath); if (uploadedExecisedata != null) { var uploadesfile = System.Text.Encoding.ASCII.GetString(uploadedExecisedata); if (uploadesfile != null) { ExerciseVideoResponse response = JsonConvert.DeserializeObject <ExerciseVideoResponse>(uploadesfile); if (response != null) { UpdateExerciseSproutLink objUpdateExerciseSproutLink = new UpdateExerciseSproutLink { SecuryId = response.security_token, VideoId = response.id }; // Get all details of ExerciseBL.UpdateExerciseSproutData(objUpdateExerciseSproutLink); } } } if (System.IO.File.Exists(sPath)) { System.IO.File.Delete(sPath); } } } catch (WebException ex) { LogManager.LogManagerInstance.WriteErrorLog(ex); throw; } catch (Exception ex) { LogManager.LogManagerInstance.WriteErrorLog(ex); throw; } }
public ActionResult UploadExerciseVideosAndExcel() { StringBuilder traceLog = null; if (Login.IsSessionExpire(Convert.ToString(HttpContext.Session[ConstantHelper.constLoginUserName])) || Convert.ToString(HttpContext.Session[ConstantHelper.constUserType]) != ConstantHelper.constLoginadmin) { return(RedirectToAction(ConstantHelper.constLogin, ConstantHelper.constLogin)); } DataTable dt = null; try { traceLog = new StringBuilder(); traceLog.AppendLine("Start: UploadExerciseVideos() in Execise Controller"); var httpRequest = System.Web.HttpContext.Current.Request; if (httpRequest.Files.Count > 0) { Dictionary <string, string> uploadedExeciseVideos = new Dictionary <string, string>(); List <UpdateExerciseSproutLink> FailToUploadedExeciseVideos = new List <UpdateExerciseSproutLink>(); for (int i = 0; i < httpRequest.Files.Count; i++) { var fileDoc = httpRequest.Files[i]; IExcelDataReader reader = null; string sPath = ""; sPath = Server.MapPath("~/Temp/"); string newVideoId = Path.GetFileName(fileDoc.FileName); string execiseName = Path.GetFileNameWithoutExtension(fileDoc.FileName); if (fileDoc.FileName.EndsWith(".xls", StringComparison.OrdinalIgnoreCase)) { using (Stream stream = fileDoc.InputStream) { reader = ExcelReaderFactory.CreateBinaryReader(stream); reader.IsFirstRowAsColumnNames = true; DataSet result = reader.AsDataSet(); reader.Close(); dt.Clear(); dt = result.Tables[0]; } } else if (fileDoc.FileName.EndsWith(".csv", StringComparison.OrdinalIgnoreCase)) { dt = new DataTable(); dt.Locale = CultureInfo.InvariantCulture; dt.Clear(); dt.Columns.Add("Name"); dt.Columns.Add("Index"); dt.Columns.Add("Team ID"); dt.Columns.Add("Trainer ID"); if (!System.IO.File.Exists(sPath + newVideoId)) { fileDoc.SaveAs(sPath + newVideoId); } using (var fileReader = System.IO.File.OpenText(sPath + newVideoId)) using (var csvReader = new CsvHelper.CsvReader(fileReader)) { csvReader.Configuration.HasHeaderRecord = true; csvReader.Configuration.IgnoreHeaderWhiteSpace = false; csvReader.Configuration.IsHeaderCaseSensitive = true; csvReader.Configuration.RegisterClassMap <CSVExerciseMap>(); while (csvReader.Read()) { var record = csvReader.GetRecord <CSVExerciseVM>(); if (record != null) { DataRow rowdata = dt.NewRow(); rowdata["Name"] = record.Name; rowdata["Index"] = record.Index; rowdata["Team ID"] = record.TeamID; rowdata["Trainer ID"] = record.TrainerID; dt.Rows.Add(rowdata); } } } } else if (fileDoc.FileName.EndsWith(".xlsx", StringComparison.OrdinalIgnoreCase)) { using (Stream stream = fileDoc.InputStream) { reader = ExcelReaderFactory.CreateOpenXmlReader(stream); reader.IsFirstRowAsColumnNames = true; DataSet result = reader.AsDataSet(); reader.Close(); dt = result.Tables[0]; } } else if (fileDoc.FileName.EndsWith(".mp4", StringComparison.OrdinalIgnoreCase)) { uploadedExeciseVideos.Add(execiseName, sPath + newVideoId); } else { var FailToUpload = new UpdateExerciseSproutLink { ExerciseName = execiseName, Index = string.Empty, TeamID = string.Empty, TrainerID = string.Empty, FailedVideoName = fileDoc.FileName, }; FailToUploadedExeciseVideos.Add(FailToUpload); } // Save the files in local directory if (!System.IO.File.Exists(sPath + newVideoId)) { fileDoc.SaveAs(sPath + newVideoId); } } // varify execel execisename and upload on sprout server foreach (DataRow row in dt.Rows) { string execiseName = string.Empty; string index = string.Empty; string teamID = string.Empty; string trainerID = string.Empty; foreach (DataColumn col in dt.Columns) { switch (col.ColumnName) { case "Name": execiseName = Convert.ToString(row[col.ColumnName]); break; case "Index": index = Convert.ToString(row[col.ColumnName]); break; case "Team ID": teamID = Convert.ToString(row[col.ColumnName]); break; case "Trainer ID": trainerID = Convert.ToString(row[col.ColumnName]); break; } } // uploaded Execise Videos on sprout server if (uploadedExeciseVideos.ContainsKey(execiseName)) { // find out local stored file path from dictionary string localUploadPath = string.Empty; if (uploadedExeciseVideos.TryGetValue(execiseName, out localUploadPath)) { if (!string.IsNullOrEmpty(localUploadPath)) { // Upload on Execise Video on sprout server, get response and add to Fitcom database; string uploadesfile = UploadExeciseVideoToFitcom(localUploadPath); if (!string.IsNullOrEmpty(uploadesfile)) { ExerciseVideoResponse response = JsonConvert.DeserializeObject <ExerciseVideoResponse>(uploadesfile); if (response != null) { UpdateExerciseSproutLink objUpdateExerciseSproutLink = new UpdateExerciseSproutLink { SecuryId = response.security_token, VideoId = response.id, V1080pUrl = response.assets.videos._1080p, V240pUrl = response.assets.videos._240p, V360pUrl = response.assets.videos._360p, V480pUrl = response.assets.videos._480p, V720pUrl = response.assets.videos._720p, ThumnailUrl = response.assets.thumbnails[0], ExerciseName = execiseName, IsActive = true, Index = index, Description = string.Empty, IsUpdated = true, TeamID = teamID, TrainerID = trainerID, VideoLink = execiseName + ConstantHelper.constMP4ExesionWithdot, SourceUrl = string.Empty }; // Add Execise Details ExerciseBL.AddExerciseSproutData(objUpdateExerciseSproutLink); } } else { var FailToUpload = new UpdateExerciseSproutLink { ExerciseName = execiseName, Index = index, TeamID = teamID, TrainerID = trainerID, FailedVideoName = execiseName + ConstantHelper.constMP4ExesionWithdot, }; FailToUploadedExeciseVideos.Add(FailToUpload); } } // Delete Uploaded Execise if (System.IO.File.Exists(localUploadPath)) { System.IO.File.Delete(localUploadPath); } localUploadPath = string.Empty; } } else if (!string.IsNullOrEmpty(execiseName)) { var FailToUpload = new UpdateExerciseSproutLink { ExerciseName = execiseName, Index = index, TeamID = teamID, TrainerID = trainerID, FailedVideoName = string.Empty, }; FailToUploadedExeciseVideos.Add(FailToUpload); } } // Save To Failed Upload data in database ExerciseBL.SaveFailedSproutServer(FailToUploadedExeciseVideos); } else { return(Json(new { Message = "No files selected.", StatusCode = 100 }, JsonRequestBehavior.AllowGet)); } return(Json(new { Message = "File Uploaded Successfully!", StatusCode = 101 }, JsonRequestBehavior.AllowGet)); } catch (Exception ex) { LogManager.LogManagerInstance.WriteErrorLog(ex); return(Json(new { Message = "Error occurred. Error details: " + ex.Message, StatusCode = 100 }, JsonRequestBehavior.AllowGet)); } finally { traceLog.AppendLine("UploadExerciseVideos end() : --- " + DateTime.Now.ToLongDateString()); LogManager.LogManagerInstance.WriteTraceLog(traceLog); if (dt != null) { dt.Dispose(); } } }