public bool SaveMediaToContent(HttpContext hContext, ResponseMediaFileMessageModel responseMsg)
        {
            try
            {
                var file = hContext.Request.Files[0];
                var ext = Path.GetExtension(file.FileName);
                var extWoDot = ext.Replace(".", String.Empty);
                var fileNameToSave = Guid.NewGuid() + Path.GetExtension(file.FileName);
                var fullPath = _imgStorage + fileNameToSave;
                file.SaveAs(fullPath);

                var bIsVideo = DicMimeExtensions.Any(e => e.Value.LstMimes.Contains(extWoDot) && e.Key == SharedConstants.MEDIA_VIDEO);

                responseMsg.Preview = bIsVideo ? _urlApp + ImageRelativePath + SharedConstants.MEDIA_VIDEO_IMG_FILE : _urlApp + _pathToSave + fileNameToSave;
                responseMsg.Media = fileNameToSave;
                responseMsg.FileName = file.FileName;

            }
            catch (Exception)
            {
                responseMsg.HasError = false;
                responseMsg.MsgError = ResShared.ERROR_UNKOWN;
                return false;
            }

            return true;
        }
        private bool ValidateUser(HttpContext hContext, ResponseMediaFileMessageModel responseMsg)
        {
            try
            {
                var userId = hContext.User.Identity.GetUserId();

                if (userId == null)
                {
                    responseMsg.HasError = false;
                    responseMsg.MsgError = ResShared.ERROR_NOTAUTHENTICATED_USER;
                    return false;
                }

                if(AccountRepository.IsUserInRole(userId, new[] {RolesConstants.ROLE_MANAGER}))
                    return true;

                responseMsg.HasError = false;
                responseMsg.MsgError = ResShared.ERROR_NOTAUTHENTICATED_USER;
                return false;
            }
            catch (Exception)
            {
                responseMsg.HasError = false;
                responseMsg.MsgError = ResShared.ERROR_NOTAUTHENTICATED_USER;
                return false;
            }
        }
        private bool ValidateNumberOfFiles(HttpContext hcontext, ResponseMediaFileMessageModel responseMsg)
        {
            try
            {
                if (hcontext.Request.Files.Count == 1)
                {
                    return true;
                }

                responseMsg.HasError = true;
                responseMsg.MsgError = ResMediaRep.ERROR_UPLOAD_NOSINGLEMEDIA;
                return false;
            }
            catch (Exception)
            {
                return false;
            }
        }
        private bool ValidateSizeAndExtension(HttpContext hcontext, ResponseMediaFileMessageModel responseMsg)
        {
            var file = hcontext.Request.Files[0];

            if (file.ContentLength > FileSize)
            {
                responseMsg.HasError = true;
                responseMsg.MsgError = string.Format(ResMediaRep.ERROR_MEDIA_SIZE_TOOLONG, FileSize);
                return false;
            }

            var extFile = file.FileName.FileExtensionWoDot();

            if (DicMimeExtensions.Any(e => e.Value.LstMimes.Contains(extFile)))
                return true;

            responseMsg.HasError = true;
            responseMsg.MsgError = ResMediaRep.ERROR_NOT_MEDIAFILE;
            return false;
        }
        public ResponseMediaFileMessageModel ValidateAndSaveMedia(HttpContext hContext)
        {
            var responseMsg = new ResponseMediaFileMessageModel { HasError = false };

            try
            {
                if (_lstOfActions.GetInvocationList().Cast<ActionUpload>().Any(actionToDo => actionToDo.Invoke(hContext, responseMsg) == false))
                {
                    return responseMsg;
                }
                responseMsg.MsgError = ResMediaRep.INFO_UPLOADMEDIA_SUCCESSFUL;
                responseMsg.HasError = false;
            }
            catch (Exception)
            {
                responseMsg.HasError = true;
                responseMsg.MsgError = ResMediaRep.ERROR_UPLOADMEDIA_UNKNOW_ERROR;
            }
            return responseMsg;
        }