public IActionResult MultipleOperation([FromBody] MultiOperation inputs) { if (inputs == null || inputs.Imagestream == null || inputs.MultiOperationParam == null) { return(StatusCode(400, new EmptyInputError() { })); } ImageProHandler.LoadImage(inputs.Imagestream); var response = ImageProHandler.MultipleOperation(inputs); ImageProHandler.outStream.Close(); ImageProHandler.inStream.Close(); if (response.Message == OpMessage.InvalidOperation) { return(StatusCode(405, new InvalidOperationError() { })); } else if (response.Message == OpMessage.InvalidInputParameter) { return(StatusCode(409, new InvalidInputParameterError() { })); } return(Ok(response)); }
private IOperation GetOperationByName(string name) { IOperation operation = null; switch (name) { case "+": operation = new AddOperation(); break; case "-": operation = new SubOperation(); break; case "*": operation = new MultiOperation(); break; case "/": operation = new DivisionOperation(); break; case "^": operation = new ExpOperation(); break; default: break; } return(operation); }
static public T InvokeAllSerial <T, P2, P3, P4, P5, P6, P7, P8>(this MultiOperation <T, T> item, T input, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8) { if (item != null) { return(item.GetInvocationList() .Convert <MultiOperation <T, T, P2, P3, P4, P5, P6, P7, P8> >() .Apply(input, (i, o) => o(i, p2, p3, p4, p5, p6, p7, p8))); } return(input); }
static public T InvokeAllSerial <T>(this MultiOperation <T, T> item, T input) { if (item != null) { return(item.GetInvocationList() .Convert <MultiOperation <T, T> >() .Apply(input, (i, o) => o(i))); } return(input); }
static public T InvokeAllSerial <T, P2, P3, P4>(this MultiOperation <T, T> item, T input, P2 p2, P3 p3, P4 p4) { if (item != null) { return(item.GetInvocationList() .Convert <MultiOperation <T, T, P2, P3, P4> >() .Apply(input, (i, o) => o(i, p2, p3, p4))); } return(input); }
static public IEnumerable <T> InvokeAllParallel <T, P1, P2, P3, P4, P5, P6>(this MultiOperation <T, P1> item, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6) { if (item != null) { return(item.GetInvocationList() .Convert <MultiOperation <T, P1, P2, P3, P4, P5, P6> >() .Convert(o => o(p1, p2, p3, p4, p5, p6))); } return(Empty.IEnumerable <T>()); }
static public IEnumerable <T> InvokeAllParallel <T>(this MultiOperation <T> item) { if (item != null) { return(item.GetInvocationList() .Convert <MultiOperation <T> >() .Convert(o => o())); } return(Empty.IEnumerable <T>()); }
public ImageResult MultipleOperation(MultiOperation inputs) { var result = new ImageResult { Message = OpMessage.Success }; var param = inputs.MultiOperationParam; var flipOps = param.FlipParam; var gsOps = param.GreyScaleParam; var resizeOps = param.ResizeParam; var rotateOps = param.RotateParam; var thumbnailOps = param.ThumbnailParam; var allOps = flipOps.Count() + gsOps.Count() + resizeOps.Count() + rotateOps.Count() + thumbnailOps.Count(); if (allOps != param.MultiOperationSequence.Count() || param.MultiOperationSequence.Count() == 0) { result.Message = OpMessage.InvalidInputParameter; return(result); } try { param.MultiOperationSequence.ForEach(operation => { switch (operation) { case Operations.FLIP: var flipParam = flipOps[0]; flipOps.Remove(flipParam); var fp = new FlipImage { Param = flipParam, }; FlipImage(fp); break; case Operations.ROTATE: var rotateParam = rotateOps[0]; rotateOps.Remove(rotateParam); var rop = new RotateImage { Param = rotateParam, }; RotateImage(rop); break; case Operations.RESIZE: var resizeParam = resizeOps[0]; resizeOps.Remove(resizeParam); var rep = new ResizeImage { Param = resizeParam, }; ResizeImage(rep); break; case Operations.GRAYSCALE: var gsParam = gsOps[0]; gsOps.Remove(gsParam); GrayScaleImage(); break; case Operations.THUMBNAIL: var tp = thumbnailOps[0]; thumbnailOps.Remove(tp); ThumbnailImage(); break; default: throw new Exception(); } imageFactory.Load(outStream); }); } catch (Exception ex) { result.Message = OpMessage.InvalidOperation; return(result); } result.Result = outStream.ToArray(); return(result); }