public IHttpActionResult PostServiceDescription(ServiceDescription_ApiRequestCreateModel serviceDescriptionRequestModel) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var idUser = _userIdentityService.Id; var serviceDescription = _mapper.Map <ServiceDescription>(serviceDescriptionRequestModel); serviceDescription.Xml = serviceDescription.Xml.Replace("%26", "&"); serviceDescription.Xml = serviceDescription.Xml.UnescapeXml(); serviceDescription.IdOwnerUser = idUser; var count = _serviceDescriptionService.Create(serviceDescription); var serviceDescriptionResponseModel = _mapper.Map <ServiceDescription_ApiResponseViewModel>(serviceDescription); return(Ok(serviceDescriptionResponseModel)); }
public async Task <ActionResult> UploadServiceDescriptionFile(string stringByteArray, string filename) { var isServiceDescriptionAlreadyOpened = false; var isServiceDescriptionAlreadySaved = false; #region Set authorization to API calls SetAuthorizationToAPICalls(); #endregion Set authorization to API calls #region Get Service Descriptions Cookie string[] serviceDescriptionsCookie = null; var cookie = GetCookie(GRASEWS_SERVICEDESCRIPTIONS_OPENED_COOKIE); if (cookie != null) { serviceDescriptionsCookie = cookie.Value.Split(','); } #endregion Get Service Descriptions Cookie #region Check if the service description is already in database and if the service description is already opened (cookies) var allServiceDescriptionsRequest = CreateApiRequest("api/service-descriptions", HttpMethodENUM.GET, "application/x-www-form-urlencoded"); var serviceDescriptionCollectionResponse = await _apiRestClient.ExecuteAsync <ServiceDescriptionCollection_ApiResponseViewModel>(allServiceDescriptionsRequest); if (serviceDescriptionCollectionResponse.StatusCode == System.Net.HttpStatusCode.OK) { var serviceDescriptions = serviceDescriptionCollectionResponse.Data; var serviceDescriptionAlreadySaved = serviceDescriptions.ServiceDescriptionViewModels.FirstOrDefault(x => x.ServiceName.ToUpper() == filename.ToUpper()); isServiceDescriptionAlreadySaved = serviceDescriptionAlreadySaved != null; if (isServiceDescriptionAlreadySaved) { if (serviceDescriptionsCookie?.Length > 0) { isServiceDescriptionAlreadyOpened = serviceDescriptionsCookie.Any(x => x == serviceDescriptionAlreadySaved.Id.ToString()); } } } if (isServiceDescriptionAlreadyOpened) { return(Json(new { message = "Service Description is already opened." }, JsonRequestBehavior.AllowGet)); } if (isServiceDescriptionAlreadySaved) { return(Json(new { message = "Service Description has already been saved in the user's repository. Please, use the Saved Service Description instead of the New Service Description menu." }, JsonRequestBehavior.AllowGet)); } #endregion Check if the service description is already in database and if the service description is already opened (cookies) #region Read uploaded file var fileContent = ReadUploadedFile(stringByteArray); #endregion Read uploaded file #region Save Service Description var model = new ServiceDescription_ApiRequestCreateModel { ServiceName = filename, Xml = fileContent }; var saveServiceDescriptionRequest = CreateApiRequest("api/service-descriptions", HttpMethodENUM.POST, "application/x-www-form-urlencoded"); saveServiceDescriptionRequest.AddRequestBodyParameter(model); var serviceDescriptionResponse = await _apiRestClient.ExecuteAsync <ServiceDescription_ApiResponseViewModel>(saveServiceDescriptionRequest); var serviceDescription = serviceDescriptionResponse.Data; #endregion Save Service Description #region Get html for the tree view menu var htmlTreeViewMenuRequest = CreateApiRequest($"api/service-descriptions/{serviceDescription.Id}/html/tree-view-menu", HttpMethodENUM.GET, "application/x-www-form-urlencoded"); var htmlTreeViewMenuResponse = await _apiRestClient.ExecuteAsync <string>(htmlTreeViewMenuRequest); var htmlTreeViewMenu = htmlTreeViewMenuResponse.Data; serviceDescription.HtmlTreeViewMenu = htmlTreeViewMenu; #endregion Get html for the tree view menu #region Create cookie with service descriptions (ids) opened var serviceDescriptionsForCookie = new List <string>(); if (serviceDescriptionsCookie != null && serviceDescriptionsCookie.Length > 0) { serviceDescriptionsForCookie.AddRange(serviceDescriptionsCookie.ToList()); } serviceDescriptionsForCookie.Add(serviceDescription.Id.ToString()); SetCookie(GRASEWS_SERVICEDESCRIPTIONS_OPENED_COOKIE, string.Join(",", serviceDescriptionsForCookie)); #endregion Create cookie with service descriptions (ids) opened SetCookie(GRASEWS_SERVICEDESCRIPTION_ON_VIEW_COOKIE, serviceDescription.Id.ToString()); return(Json(new { serviceDescription }, JsonRequestBehavior.AllowGet)); }