示例#1
0
    // GET: Api
    public async Task<ActionResult> CompanyAsync(Guid id, bool settings = false)
    {
      var cookies = new CookieManager(HttpContext);
      if(cookies.GetUser() != null)
      {
        PerfectView.PerfectViewSoapClient client = new PerfectView.PerfectViewSoapClient();
        try
        {
          if(settings)
          {
            var settingsResponse = await client.RelationGetFieldsAsync(Settings.Credentials, PerfectView.BaseRelationType.Organisation);
            var getvalue = CompanyResultBuilder.BuildSettingsGetValue(settingsResponse);
            var @enum = CompanyResultBuilder.BuildSettingsEnum(settingsResponse);
          }

          var response = await client.RelationGetAsync(Settings.Credentials, id, true, false);
          var parents = await client.RelationGetParentRelationshipsAsync(Settings.Credentials, id, true);
          var childs = await client.RelationGetChildRelationshipsAsync(Settings.Credentials, id, true);

          return Json(CompanyResultBuilder.Build(response, parents, childs), JsonRequestBehavior.AllowGet);
        }
        catch(Exception exc)
        {
        }
      }
      return Json(null, JsonRequestBehavior.AllowGet);
    }
    public ActionResult Ipad(bool goed = false, string error = "")
    {
      var cookies = new CookieManager(HttpContext);
      var user = cookies.GetUser();
      if(user == null)
      {
        return Redirect(OAuthController.GetAuthUrl());
      }

      ViewBag.FromEmail = user.Email;
      ViewBag.FromName = user.Name;
      ViewBag.Goed = goed;
      ViewBag.Error = error;
      return View();
    }
示例#3
0
 public async Task<ActionResult> ProductsAsync(string query)
 {
   var cookies = new CookieManager(HttpContext);
   PerfectView.PerfectViewSoapClient client = new PerfectView.PerfectViewSoapClient();
   if(query.Length > 2 && cookies.GetUser() != null)
   {
     try
     {
       var response = await client.ProductGetAllAsync(Settings.Credentials);
       return Json(ProductSearchResultBuilder.Build(response, query), JsonRequestBehavior.AllowGet);
     }
     catch(Exception exc)
     {
     }
   }
   return Json(new CompanySearchResult[0], JsonRequestBehavior.AllowGet);
 }
    // GET: OAuth
    public async Task<ActionResult> Index(string code, string error)
    {
      if(!string.IsNullOrEmpty(code))
      {
        var user = await GetUser(code);

        if(user.Email == "*****@*****.**" || user.Email.EndsWith("@overeemtelecom.nl"))
        {
          var cookies = new CookieManager(HttpContext);
          cookies.StoreUser(user);
          return RedirectToAction("Index", "Index");
        }
      }

      ViewBag.Error = error;
      return View();
    }
示例#5
0
 // GET: Api
 public async Task<ActionResult> CompaniesAsync(string query)
 {
   var cookies = new CookieManager(HttpContext);
   
   PerfectView.PerfectViewSoapClient client = new PerfectView.PerfectViewSoapClient();
   if(query.Length > 2 && cookies.GetUser() != null)
   {
     try
     {
       var response = await client.RelationSearchByName_V2Async(Settings.Credentials, 1, 10, query, true, false);
       return Json(CompanySearchResultBuilder.Build(response), JsonRequestBehavior.AllowGet);
     }
     catch(Exception exc)
     {
     }
   }
   return Json(new CompanySearchResult[0], JsonRequestBehavior.AllowGet);
 }
    private async Task<ActionResult> SaveInternal(string from_name, string from_email, WorkOrder order)
    {
      var cookies = new CookieManager(HttpContext);
      if(cookies.GetUser() == null)
      {
        return RedirectToAction("Index", "Index", new { goed = true });
      }

      PerfectView.PerfectViewSoapClient client = new PerfectView.PerfectViewSoapClient();
      try
      {
        var response = await client.ActivityCreateAsync(Settings.Credentials, new PerfectView.PvActivitySettingsData
        {
          WorkflowId = Settings.SupportWorkflowId,
          WorkflowStepId = Settings.NieuwWorkFlowStepId,
          ParentRelationshipId = Guid.Parse(order.BedrijfsId),
          ChildRelationshipId = !string.IsNullOrEmpty(order.ContactpersoonId) ? Guid.Parse(order.ContactpersoonId) : (Guid?)null,

        }, new PerfectView.PvActivityFollowUpData
        {
          Start = ParseDateTime(order.Momenten.FirstOrDefault(), m => m.Datum, m => m.Begintijd),
          End = ParseDateTime(order.Momenten.FirstOrDefault(), m => m.Datum, m => m.Eindtijd)
        }, new PerfectView.PvFieldValueData[] {
          ActivityRequestBuilder.Build(ActivityFields.Onderwerp, GetOnderwerp(from_name, order.Opdracht) ),
          ActivityRequestBuilder.Build(ActivityFields.Omschrijving, order.Opdracht),
          ActivityRequestBuilder.Build(ActivityFields.Oplossing, BuildOplossing(order)),
        }, null);

        if(response.Body.ActivityCreateResult.Activity == null)
        {
          throw new Exception(response.Body.ActivityCreateResult.ErrorInformation);
        }
        var activityId = response.Body.ActivityCreateResult.Activity.Id;
        await client.ActivityFlowAsync(Settings.Credentials, activityId, Guid.Empty, Guid.Empty, Guid.Parse(order.Wachtrij));

        var sigToImg = new SignatureToImage()
        {
          BackgroundColor = Color.White,
          PenColor = Color.FromArgb(20, 83, 148),
          CanvasWidth = 290,
          CanvasHeight = 330,
          PenWidth = 2,
          FontSize = 24,
          FontName = "Journal",
        };

        using(var signatureImage = sigToImg.SigJsonToImage(order.output))
        using(System.IO.MemoryStream stream = new System.IO.MemoryStream())
        {
          signatureImage.Save(stream, System.Drawing.Imaging.ImageFormat.Png);
          byte[] imageBytes = stream.ToArray();
          string imageBase64String = Convert.ToBase64String(imageBytes);
          await client.ActivityAddAttachmentAsync(Settings.Credentials, activityId, "handtekening.png", imageBase64String);

          var htmlBytes = System.Text.Encoding.UTF8.GetBytes(ActivityRequestBuilder.BuildHtml(order, imageBase64String));
          string htmlBase64String = Convert.ToBase64String(htmlBytes);
          await client.ActivityAddAttachmentAsync(Settings.Credentials, activityId, "werkbon.html", htmlBase64String);
        }

        return RedirectToAction("Index", "Index", new { goed = true });
      }
      catch(Exception exc)
      {
        return RedirectToAction("Index", "Index", new { goed = false, error = exc.Message });
      }
    }