go
This commit is contained in:
178
C4IT.API.Helper/HelperController.cs
Normal file
178
C4IT.API.Helper/HelperController.cs
Normal file
@@ -0,0 +1,178 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Web.Http;
|
||||
using update4u.SPS.DataLayer;
|
||||
using update4u.SPS.DatabaseFileStorage;
|
||||
using update4u.SPS.DataLayer.Schema.Internal;
|
||||
using QRCoder;
|
||||
using System.Drawing;
|
||||
using System.IO;
|
||||
using System.Net.Http;
|
||||
using System.Net;
|
||||
|
||||
namespace C4IT.API.Helper
|
||||
{
|
||||
[RoutePrefix("api/c4it/helper")]
|
||||
public class HelperController : ApiController
|
||||
{
|
||||
|
||||
|
||||
[Route("copyFiles"), HttpGet]
|
||||
public string copyFiles(Guid sourceEOID, Guid targetEOID)
|
||||
{
|
||||
StorageService storageService = new StorageService();
|
||||
if (!sourceEOID.Equals(Guid.Empty) && !targetEOID.Equals(Guid.Empty))
|
||||
{
|
||||
|
||||
try
|
||||
{
|
||||
Guid sourceTypeID = new Guid(FragmentRequestBase.SimpleLoad(SPSDataEngineSchemaReader.ClassGetIDFromName("SPSCommonClassBase"), "typeid", "[expression-objectid]='" + sourceEOID.ToString() + "'").Rows[0]["typeid"].ToString());
|
||||
Guid targetTypeID = new Guid(FragmentRequestBase.SimpleLoad(SPSDataEngineSchemaReader.ClassGetIDFromName("SPSCommonClassBase"), "typeid", "[expression-objectid]='" + targetEOID.ToString() + "'").Rows[0]["typeid"].ToString());
|
||||
|
||||
string targetFolder = StorageService.GetFolderName(targetTypeID, targetEOID);
|
||||
string sourceFolder = StorageService.GetFolderName(sourceTypeID, sourceEOID);
|
||||
List<DatabaseFile> dbFiles = storageService.ListFiles(sourceFolder);
|
||||
|
||||
List<Guid> copyFileGuids = new List<Guid>();
|
||||
foreach (DatabaseFile dbFile in dbFiles)
|
||||
{
|
||||
copyFileGuids.Add(dbFile.FileGuid);
|
||||
|
||||
}
|
||||
storageService.CopyFiles(copyFileGuids, targetFolder);
|
||||
|
||||
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
return e.Message;
|
||||
}
|
||||
}
|
||||
return "ok";
|
||||
|
||||
}
|
||||
|
||||
|
||||
[Route("moveFiles"), HttpGet]
|
||||
public string moveFiles(Guid sourceEOID, Guid targetEOID)
|
||||
{
|
||||
StorageService storageService = new StorageService();
|
||||
if (!sourceEOID.Equals(Guid.Empty) && !targetEOID.Equals(Guid.Empty)) {
|
||||
|
||||
try{
|
||||
Guid sourceTypeID = new Guid(FragmentRequestBase.SimpleLoad(SPSDataEngineSchemaReader.ClassGetIDFromName("SPSCommonClassBase"), "typeid", "[expression-objectid]='" + sourceEOID.ToString() + "'").Rows[0]["typeid"].ToString());
|
||||
Guid targetTypeID = new Guid(FragmentRequestBase.SimpleLoad(SPSDataEngineSchemaReader.ClassGetIDFromName("SPSCommonClassBase"), "typeid", "[expression-objectid]='" + targetEOID.ToString() + "'").Rows[0]["typeid"].ToString());
|
||||
|
||||
string targetFolder = StorageService.GetFolderName(targetTypeID, targetEOID);
|
||||
string sourceFolder = StorageService.GetFolderName(sourceTypeID, sourceEOID);
|
||||
|
||||
|
||||
storageService.RenameFolder(sourceFolder, targetFolder);
|
||||
|
||||
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
return e.Message;
|
||||
}
|
||||
}
|
||||
return "ok";
|
||||
}
|
||||
|
||||
[Route("unreadActivity"), HttpPost]
|
||||
public string unreadActivity(Guid[] activiesEOID)
|
||||
{
|
||||
string log = activiesEOID.Length.ToString();
|
||||
if (activiesEOID.Length > 0)
|
||||
{
|
||||
try
|
||||
{
|
||||
foreach (Guid activityEOID in activiesEOID)
|
||||
{
|
||||
|
||||
Guid typeId = new Guid(FragmentRequestBase.SimpleLoad(SPSDataEngineSchemaReader.ClassGetIDFromName("SPSCommonClassBase"), "typeid", "[expression-objectid]='" + activityEOID.ToString() + "'").Rows[0]["typeid"].ToString());
|
||||
SPSObject activity = ObjectRequest.GetSPSObject(typeId, activityEOID);
|
||||
log += " / " + activity.GetAttribute("SPSActivityClassBase", "TicketNumber");
|
||||
activity.UpdateAttribute("SPSActivityClassBase","NewInformationReceived",DBNull.Value);
|
||||
activity.Update();
|
||||
|
||||
}
|
||||
}catch(Exception e){
|
||||
return log + " / " + e.Message;
|
||||
}
|
||||
}
|
||||
return log;
|
||||
}
|
||||
|
||||
[Route("genQrCode"),HttpGet]
|
||||
public HttpResponseMessage genQRCode(string qrText)
|
||||
{
|
||||
QRCodeGenerator qrGenerator = new QRCodeGenerator();
|
||||
QRCodeData qrCodeData = qrGenerator.CreateQrCode(qrText,
|
||||
QRCodeGenerator.ECCLevel.Q);
|
||||
QRCode qrCode = new QRCode(qrCodeData);
|
||||
Bitmap qrCodeImage = qrCode.GetGraphic(20);
|
||||
var dataStream = new MemoryStream(BitmapToBytes(qrCodeImage));
|
||||
var fileName = Path.GetInvalidFileNameChars().Aggregate(qrText.Substring(0, 10), (current, c) => current.Replace(c.ToString(), string.Empty));
|
||||
if (String.IsNullOrEmpty(fileName))
|
||||
{
|
||||
fileName = "dummy";
|
||||
}
|
||||
HttpResponseMessage httpResponseMessage = new HttpResponseMessage(HttpStatusCode.OK);
|
||||
httpResponseMessage.Content = new StreamContent(dataStream);
|
||||
httpResponseMessage.Content.Headers.ContentDisposition = new System.Net.Http.Headers.ContentDispositionHeaderValue("attachment");
|
||||
httpResponseMessage.Content.Headers.ContentDisposition.FileName = fileName+".png";
|
||||
httpResponseMessage.Content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("image/png");
|
||||
|
||||
return httpResponseMessage;
|
||||
}
|
||||
// This method is for converting bitmap into a byte array
|
||||
private static byte[] BitmapToBytes(Bitmap img)
|
||||
{
|
||||
using (MemoryStream stream = new MemoryStream())
|
||||
{
|
||||
img.Save(stream, System.Drawing.Imaging.ImageFormat.Png);
|
||||
return stream.ToArray();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
[Route("copyObject"), HttpGet]
|
||||
|
||||
public string copyObject(Guid objectToCopy)
|
||||
{
|
||||
string log = "";
|
||||
try
|
||||
{
|
||||
Guid sourceTypeID = new Guid(FragmentRequestBase.SimpleLoad(SPSDataEngineSchemaReader.ClassGetIDFromName("SPSCommonClassBase"), "typeid", "[expression-objectid]='" + objectToCopy.ToString() + "'").Rows[0]["typeid"].ToString());
|
||||
SPSObject oldObject = ObjectRequest.GetSPSObject(sourceTypeID, objectToCopy);
|
||||
SPSObject newObject = (SPSObject)oldObject.CreateCopy(true);
|
||||
|
||||
IAttribute k = newObject.ConfigurationItem.AutoNumberAttribute;
|
||||
string attrib = k.DbColumnName;
|
||||
IDataDefinition dd = k.BelongsToSchemaObjectClass;
|
||||
newObject.UpdateAttribute(dd.Name, attrib, DBNull.Value);
|
||||
log = attrib + " / " + dd.Name;
|
||||
|
||||
|
||||
newObject.Update();
|
||||
}catch(Exception e)
|
||||
{
|
||||
return e.Message;
|
||||
}
|
||||
|
||||
return log;
|
||||
}
|
||||
|
||||
|
||||
|
||||
[Route("createUninstall"), HttpPost]
|
||||
public bool createUninstall(Guid[] installBookings)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user