public async Task <IActionResult> Clean(CleanSequenceViewModel Model, IFormFile SequenceFile) { if (string.IsNullOrEmpty(Model.Sequence)) { if (SequenceFile is null) { return(View("Error", new ErrorViewModel { Message = "You can't upload an empty file", Solution = "You should upload a file contains a sequence" })); } else { Model.Sequence = await Helper.ConvertFileByteToByteStringAsync(SequenceFile); } } string CleanSequence = string.Empty; if (Model.Alphabet == "DNA") { CleanSequence = Helper.CleanUp(Model.Sequence, Helper.UnambiguousDNA); } else if (Model.Alphabet == "RNA") { CleanSequence = Helper.CleanUp(Model.Sequence, Helper.UnambiguousRNA); } else { CleanSequence = Helper.CleanUp(Model.Sequence, Helper.Protein); } return(File(Encoding.UTF8.GetBytes(CleanSequence), "text/plain", $"{Guid.NewGuid()}_Clean.txt")); }
public async Task <IActionResult> Clean(CleanSequenceViewModel Model, IFormFile SequenceFile) { if (string.IsNullOrWhiteSpace(Model.Sequence) && SequenceFile == null) { return(View("Error", new ErrorViewModel { Message = "You Can't enter an empty sequence", Solution = "You have to enter the sequence or either upload a file contains the sequence" })); } if (string.IsNullOrEmpty(Model.Sequence)) { if (SequenceFile.ContentType != "text/plain") { return(View("Error", new ErrorViewModel { Message = "You Can't upload a file of any type rather than txt file format", Solution = "You should upload a file of txt file format" })); } else { Model.Sequence = await Helper.ConvertFileByteToByteStringAsync(SequenceFile); } } if (!Regex.IsMatch(Model.Sequence, @"^[a-zA-Z]+$")) { return(View("Error", new ErrorViewModel { Message = "Your sequence must contains only characters", Solution = "Send sequence contains only characters" })); } string CleanSequence = string.Empty; if (Model.Alphabet == "DNA") { CleanSequence = Helper.CleanUp(Model.Sequence, Helper.UnambiguousDNA); } else if (Model.Alphabet == "RNA") { CleanSequence = Helper.CleanUp(Model.Sequence, Helper.UnambiguousRNA); } else { CleanSequence = Helper.CleanUp(Model.Sequence, Helper.Protein); } return(File(Encoding.UTF8.GetBytes(CleanSequence), "text/plain", $"{Guid.NewGuid()}_Clean.txt")); }