public async Task <DocumentDetailsModel> CreateFirmAsync(CreateDocumentModel model) { var doc = new DocumentEntityModel() { Receiver = model.Receiver, Description = model.Description, Amount = model.Amount, Firm = await this._data.Firms.FirstOrDefaultAsync(c => c.Id == model.FirmId) }; await this._data.Documents.AddAsync(doc); await this._data.SaveChangesAsync(); var editedDoc = new DocumentDetailsModel() { DocumentId = doc.Id, Receiver = doc.Receiver, Amount = doc.Amount, Description = doc.Description, FirmId = doc.FirmId, FirmName = doc.Firm.Name }; return(editedDoc); }
private void btnCreateDocument_Click(object sender, EventArgs e) { var model = new CreateDocumentModel() { UserId = 1, DocumentType = DocumentType.Pdf }; // modelimi oluşturdum. Modelimi göndercem. Bunun için benim queue isimlerine ihtiyacım var. // create documentin altında writeQueue'yu çağırcaz WriteQueue(createDocument, model); // hangi queue ya göndercez? create dediğimiz için, create queue ya göndercez. frmSplash frmSplash = new frmSplash(); frmSplash.Show(); // bunu çıkarttıktan sonra, benim artık consumer işlemlerini toparlamam gerek. var consumerEvent = new EventingBasicConsumer(channel); // böyle bir eventim var. benden channel istiyor. bu eventin recieve isminde bir metodu var. bunun ilk parametesi channel ikincisi event argüment şeklinde. consumerEvent.Received += (ch, ea) => { // mesaj gelince önce modeli alalım var modelReceived = JsonConvert.DeserializeObject <CreateDocumentModel>(Encoding.UTF8.GetString(ea.Body.ToArray())); // recive data ya bu url i bastık AddLog($"Received Data Url: {modelReceived.Url}"); closeSplashScreen(frmSplash); }; // sonra channel a diyecez ki ben artık consume etmek isityorum. yani; channel.BasicConsume(documentCreated, true, consumerEvent); // o bana neyi consume edecen diyor. ben de ona document created ı consume edecem. cünkü consumer öteki taraftan yazacak bana. bana diyecek ki ben dökümanı oluşturdum. onu consume edecez diyorum. auotAck'ti true ve cunsoumer olarak da consumer eventimi parametre olarak gönderiyorum. }
private static void WriteQueue(string queueName, CreateDocumentModel model) { // modeli buraya yazacaz. hangi queue ya yazacağımızı biliyoruz. // bir tane channel nesenisine ihtiyac var. onu da yukarıda tanımladık. var messageArr = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(model)); // yukarıda set ettiğimiz model. channel.BasicPublish(documentCreateExchange, queueName, null, messageArr); // basic publish metodumuz gelsin. Burada bir exchane isityor bizden. routing key istiyor o da queue name. son olarak da body array istiyor. Console.WriteLine("Message published."); }
public ActionResult Create() { var groups = repository.GetGroups().Where(g => g.ParentID != null).ToArray(); ViewBag.Groups = groups; var model = new CreateDocumentModel() { GroupID = groups.First().GroupID, Date = DateTime.Today.AddDays(1), ParentDocumentDate = DateTime.Today }; return(View(model)); }
public async Task <IActionResult> CreateDocument([FromBody] CreateDocumentModel model) { try { if (await CanAccessDirectory(model.DirectoryId, true)) { var user = await GetLoggedInUser(); await _documentService.CreateDocument(user.Id.Value, model); return(Ok()); } return(PermissionError()); } catch (Exception e) { return(HandleException(e)); } }
public async Task <IActionResult> CreateDocument([FromBody] CreateDocumentModel request) { var variables = new List <Variable>(); foreach (var v in request.Variables) { var variable = new Variable() { Name = v.Name, Type = v.Type, Value = v.Value }; variables.Add(variable); } var document = await service.GenerateDocument(Guid.Empty, null, request.TemplateName, variables); var model = ToDocumentModel(document); return(CreatedAtAction(nameof(GetDocument), new { id = model.DocumentId }, model)); }
public async Task <IActionResult> Create([FromBody] CreateDocumentModel model) { return(await ProcessAsync(async() => { var user = await UserService.GetUserByPrincipal(User); var document = new DocumentModel { Title = model.Title, Description = model.Description, DirectoryId = model.DirectoryId, CreatedById = user.Id, TypeId = model.TypeId, Restricted = model.Restricted }; await _documentService.Create(document); return Ok("Document created successfully."); })); }
public async Task <DocumentDetailsModel> Create(CreateDocumentModel model) => await this._documentService.CreateFirmAsync(model);
//ZohoSign.templates.ALL public async Task <IActionResult> SelfSign() { string postContent = "scope=ZohoSign.documents.all"; //postContent = postContent + "&authtoken=Your AUTHTOKEN";//Give your authtoken // string grantToken = "1000.634e7dd2131e4a0d0d8750c2df83944d.e8679a883f93bbaeb69743fa965d5ad7"; string accessToken = "1000.26c384a6cc2a15c74f001cb505a5dbc2.2b8a873076fd5dc6d5038cdd6f279320"; GenerateAccessNRefreshTokenaa(); #region Send Document for Signature #region GetFieldTypes using (var httpClient = new HttpClient()) { using (var requestCreateDocument = new HttpRequestMessage(new HttpMethod("GET"), "https://sign.zoho.com/api/v1/fieldtypes")) { requestCreateDocument.Headers.Add("Authorization", "Zoho-oauthtoken " + accessToken); HttpResponseMessage responseresult = httpClient.SendAsync(requestCreateDocument).Result; var result = responseresult.Content.ReadAsStringAsync().Result.ToString(); JObject o = JObject.Parse(result); var jsonData = JsonConvert.DeserializeObject <Fields>(result); foreach (var item in jsonData.field_types) { } } } #endregion using (var httpClient = new HttpClient()) { CreateDocumentModel jsonData = null; using (var requestCreateDocument = new HttpRequestMessage(new HttpMethod("POST"), "https://sign.zoho.com/api/v1/requests")) { //Create New Document requestCreateDocument.Headers.Add("Authorization", "Zoho-oauthtoken " + accessToken); var multipartContent = new MultipartFormDataContent(); multipartContent.Add(new ByteArrayContent(System.IO.File.ReadAllBytes("VOC1.png")), "file", Path.GetFileName("VOC1.png")); multipartContent.Add(new StringContent("{'requests': {'request_name':'NDA ','self_sign':true}}"), "data"); requestCreateDocument.Content = multipartContent; HttpResponseMessage responseresult = httpClient.SendAsync(requestCreateDocument).Result; var result = responseresult.Content.ReadAsStringAsync().Result; jsonData = JsonConvert.DeserializeObject <CreateDocumentModel>(result); } //Self Sign Document if (jsonData != null && jsonData.status == "success") { string requestId = jsonData.requests.request_id; string documentId = jsonData.requests.document_ids[0].document_id; string actionId = jsonData.requests.actions[0].action_id; string recipient_email = jsonData.requests.actions[0].recipient_email; string recipient_name = jsonData.requests.actions[0].recipient_name; string requestTypeId = jsonData.requests.request_type_id; using (var httpClientSendSign = new HttpClient()) { using (var requestSendSign = new HttpRequestMessage(new HttpMethod("POST"), "https://sign.zoho.com/api/v1/requests/" + requestId + "/submit")) { var jsonContent = "data={'requests':{'actions':[{'action_id':'" + actionId + "','verify_recipient':false,'action_type':'SIGN','private_notes':'Test document','signing_order':0,'recipient_email':'" + recipient_email + "','recipient_name':'" + recipient_name + "','fields':{'image_fields':[{'action_id': '" + actionId + "','field_type_name':'Signature','field_category':'image','field_label':'Signature','is_mandatory':true,'page_no':0,'document_id':'" + documentId + "','field_name':'Signature','y_coord':3,'abs_width':382,'description_tooltip':'TEst Tooltip','x_coord':42,'abs_height':80},{'action_id': '" + actionId + "','field_type_name':'Initial','field_category':'image','field_label':'Initial','is_mandatory':true,'page_no':0,'document_id':'" + documentId + "','field_name':'Initial', 'y_coord':80, 'abs_width':280, 'description_tooltip':'', 'x_coord':71, 'abs_height':50 } ] }, 'recipient_phonenumber':'9921799551', 'recipient_countrycode':'91' } ], 'self_sign':true, 'request_name':'Leave a note test', 'expiration_days':10, 'is_sequential':true, 'notes':'Test Document' }}"; requestSendSign.Headers.TryAddWithoutValidation("Authorization", "Zoho-oauthtoken " + accessToken); requestSendSign.Content = new StringContent(jsonContent, Encoding.UTF8, "application/x-www-form-urlencoded"); HttpResponseMessage responseSendSign = httpClientSendSign.SendAsync(requestSendSign).Result; var resultSendSign = responseSendSign.Content.ReadAsStringAsync().Result; } } #endregion // SEND document for signature recipient_email = "*****@*****.**"; recipient_name = "ashok kasar"; using (var httpClientSendSign = new HttpClient()) { using (var requestSendSign = new HttpRequestMessage(new HttpMethod("POST"), "https://sign.zoho.com/api/v1/requests/" + requestId)) { var jsonContent = "data={'requests':{'actions':[{'action_id':'" + actionId + "','verify_recipient':false,'action_type':'SIGN','private_notes':'Test document','signing_order':0,'recipient_email':'" + recipient_email + "','recipient_name':'" + recipient_name + "','fields':{'image_fields':[{'action_id': '" + actionId + "','field_type_name':'Signature','field_category':'image','field_label':'Signature','is_mandatory':true,'page_no':0,'document_id':'" + documentId + "','field_name':'Signature','y_coord':3,'abs_width':382,'description_tooltip':'TEst Tooltip','x_coord':42,'abs_height':80},{'action_id': '" + actionId + "','field_type_name':'Initial','field_category':'image','field_label':'Initial','is_mandatory':true,'page_no':0,'document_id':'" + documentId + "','field_name':'Initial', 'y_coord':80, 'abs_width':280, 'description_tooltip':'', 'x_coord':71, 'abs_height':50 } ] }, 'recipient_phonenumber':'9921799551', 'recipient_countrycode':'91' } ],'request_type_id' : '" + requestTypeId + "', 'request_name':'Leave a note test', 'expiration_days':10, 'is_sequential':true, 'notes':'Test Document' }}"; requestSendSign.Headers.TryAddWithoutValidation("Authorization", "Zoho-oauthtoken " + accessToken); requestSendSign.Content = new StringContent(jsonContent, Encoding.UTF8, "application/x-www-form-urlencoded"); HttpResponseMessage responseSendSign = httpClientSendSign.SendAsync(requestSendSign).Result; var resultSendSign = responseSendSign.Content.ReadAsStringAsync().Result; } } } } #region Call to Create Document API using (var httpClient = new HttpClient()) { using (var requestCreateDocument = new HttpRequestMessage(new HttpMethod("POST"), "https://sign.zoho.com/api/v1/requests")) { requestCreateDocument.Headers.Add("Authorization", "Zoho-oauthtoken " + "1000.8087fe29ecbb87c059646081a20ed9f3.c15376b169c0038352600c6ecd52c731"); var multipartContent = new MultipartFormDataContent(); multipartContent.Add(new ByteArrayContent(System.IO.File.ReadAllBytes("VOC1.png")), "file", Path.GetFileName("VOC1.png")); // working multipartContent.Add(new StringContent("{\"requests\": {\"request_name\":\"NDA \",\"self_sign\":true}}"), "data"); multipartContent.Add(new StringContent("{'requests': {'request_name':'NDA ','self_sign':true}}"), "data"); // multipartContent.Add(new StringContent("{\"requests\": {\"request_name\":\"NDA \",\"self_sign\":true }"), "data"); requestCreateDocument.Content = multipartContent; //var responseResult = await httpClient.SendAsync(requestCreateDocument); HttpResponseMessage responseresult = httpClient.SendAsync(requestCreateDocument).Result; var result = responseresult.Content.ReadAsStringAsync().Result; var jsonData = JsonConvert.DeserializeObject(result); } } #endregion #region Generate Grant Token //WebRequest requestGenGrantToken = WebRequest.Create("https://accounts.zoho.com/oauth/v2/auth?scope=ZohoSign.documents.all&client_id=1000.522HB3WI52Q679002L4O6H06FMHUCH&state=testing&response_type=code&redirect_uri=https://www.zohoapis.com/crm/v2/&access_type=offline"); //requestGenGrantToken.Method = "GET"; //WebResponse responseGenGrantToken = requestGenGrantToken.GetResponse(); //var responseTextGenGrantToken = new StreamReader(responseGenGrantToken.GetResponseStream()).ReadToEnd(); ////var resultGenGrantToken = JsonConvert.DeserializeObject(responseTextGenGrantToken); #endregion return(View()); }
public async Task <IActionResult> Index() { //postContent = postContent + "&authtoken=Your AUTHTOKEN";//Give your authtoken //string grantToken = "1000.522HB3WI52Q679002L4O6H06FMHUCH"; GenerateAccessTokenFromRefreshToken(); //GenerateAccessNRefreshTokenaa(); // var resultTemplateDetails = await GetTemplateDetails(); //return View(); #region GetFieldTypes // GenerateAccessNRefreshTokenaa(); using (var httpClient = new HttpClient()) { using (var requestCreateDocument = new HttpRequestMessage(new HttpMethod("GET"), "https://sign.zoho.com/api/v1/fieldtypes")) { requestCreateDocument.Headers.Add("Authorization", "Zoho-oauthtoken " + accessToken); HttpResponseMessage responseresult = httpClient.SendAsync(requestCreateDocument).Result; var result = responseresult.Content.ReadAsStringAsync().Result.ToString(); JObject o = JObject.Parse(result); var jsonData = JsonConvert.DeserializeObject <Fields>(result); //foreach (var item in jsonData.field_types) //{ //} } } #endregion //Create New Document for Signing and Send for Signature using (var httpClient = new HttpClient()) { CreateDocumentModel jsonData = null; using (var requestCreateDocument = new HttpRequestMessage(new HttpMethod("POST"), "https://sign.zoho.com/api/v1/requests")) { #region Create New Document for Signing requestCreateDocument.Headers.Add("Authorization", "Zoho-oauthtoken " + accessToken); var multipartContent = new MultipartFormDataContent(); var jsonContent = "{'requests': {" + "'request_name': 'NDA '," + "'actions': [" + "{" + "'recipient_name': 'Ashok Kasar'," + "'recipient_email': '*****@*****.**'," + "'recipient_phonenumber': '9921799551'," + "'recipient_countrycode': ''," + "'action_type': 'SIGN'," + "'private_notes': 'Please get back to us for further queries'," + "'signing_order': 1," + "'verify_recipient': false," + "'verification_type': 'EMAIL'," + "'verification_code': ''" + "}," + "{" + "'recipient_name': 'Ravindra Patil'," + "'recipient_email': '*****@*****.**'," + "'recipient_phonenumber': '9921799551'," + "'recipient_countrycode': ''," + "'action_type': 'SIGN'," + "'private_notes': 'Please get back to us for further queries'," + "'signing_order': 0," + "'verify_recipient': false," + "'verification_type': 'EMAIL'," + "'verification_code': ''" + "}" + "]," + "'expiration_days': 10," + "'is_sequential': true," + "'email_reminders': true," + "'reminder_period': 8 " + "}" + "}"; multipartContent.Add(new ByteArrayContent(System.IO.File.ReadAllBytes("VOC1.png")), "file", Path.GetFileName("VOC1.png")); multipartContent.Add(new StringContent(jsonContent), "data"); requestCreateDocument.Content = multipartContent; HttpResponseMessage responseresult = httpClient.SendAsync(requestCreateDocument).Result; var result = responseresult.Content.ReadAsStringAsync().Result; jsonData = JsonConvert.DeserializeObject <CreateDocumentModel>(result); } #endregion #region Send Document for Signing //Send for Sign Document if (jsonData != null && jsonData.status == "success") { string requestId = jsonData.requests.request_id; string documentId = jsonData.requests.document_ids[0].document_id; string actionId = jsonData.requests.actions[0].action_id; string actionId1 = jsonData.requests.actions[1].action_id; string recipient_email = jsonData.requests.actions[0].recipient_email; string recipient_name = jsonData.requests.actions[0].recipient_name; string requestTypeId = jsonData.requests.request_type_id; // SEND document for signature recipient_email = "*****@*****.**"; recipient_name = "Ashutosh Kumar"; using (var httpClientSendSign = new HttpClient()) { using (var requestSendSign = new HttpRequestMessage(new HttpMethod("POST"), "https://sign.zoho.com/api/v1/requests/" + requestId + "/submit")) { string jsonContent = JsonSendForSign(jsonData.requests.actions, recipient_email, recipient_name, documentId, requestTypeId); // var jsonContent111 = "data={'requests':{'actions':[{'action_id':'" + actionId + "','verify_recipient':false,'action_type':'SIGN','private_notes':'Test document','signing_order':0,'recipient_email':'" + recipient_email + "','recipient_name':'" + recipient_name + "','fields':{'image_fields':[{'action_id': '" + actionId + "','field_type_name':'Signature','field_category':'image','field_label':'Signature','is_mandatory':true,'page_no':0,'document_id':'" + documentId + "','field_name':'Signature','y_coord':3,'abs_width':382,'description_tooltip':'TEst Tooltip','x_coord':42,'abs_height':80},{'action_id': '" + actionId + "','field_type_name':'Initial','field_category':'image','field_label':'Initial','is_mandatory':true,'page_no':0,'document_id':'" + documentId + "','field_name':'Initial', 'y_coord':80, 'abs_width':280, 'description_tooltip':'', 'x_coord':71, 'abs_height':50 } ] }, 'recipient_phonenumber':'9921799551', 'recipient_countrycode':'91' } ],'request_type_id' : '" + requestTypeId + "', 'request_name':'Leave a note test', 'expiration_days':10, 'is_sequential':true, 'notes':'Test Document' }}"; requestSendSign.Headers.TryAddWithoutValidation("Authorization", "Zoho-oauthtoken " + accessToken); requestSendSign.Content = new StringContent(jsonContent, Encoding.UTF8, "application/x-www-form-urlencoded"); HttpResponseMessage responseSendSign = httpClientSendSign.SendAsync(requestSendSign).Result; var resultSendSign = responseSendSign.Content.ReadAsStringAsync().Result; } } } #endregion } //Refresh Token "1000.b967ca4b8f33c8686f3d111f4b720b84.324087ac6af5bd434a94cbb313964899" #region Call to Create Document API using (var httpClient = new HttpClient()) { using (var requestCreateDocument = new HttpRequestMessage(new HttpMethod("POST"), "https://sign.zoho.com/api/v1/requests")) { requestCreateDocument.Headers.Add("Authorization", "Zoho-oauthtoken " + "1000.8087fe29ecbb87c059646081a20ed9f3.c15376b169c0038352600c6ecd52c731"); var multipartContent = new MultipartFormDataContent(); multipartContent.Add(new ByteArrayContent(System.IO.File.ReadAllBytes("VOC1.png")), "file", Path.GetFileName("VOC1.png")); // working multipartContent.Add(new StringContent("{\"requests\": {\"request_name\":\"NDA \",\"self_sign\":true}}"), "data"); multipartContent.Add(new StringContent("{'requests': {'request_name':'NDA ','self_sign':true}}"), "data"); // multipartContent.Add(new StringContent("{\"requests\": {\"request_name\":\"NDA \",\"self_sign\":true }"), "data"); requestCreateDocument.Content = multipartContent; //var responseResult = await httpClient.SendAsync(requestCreateDocument); HttpResponseMessage responseresult = httpClient.SendAsync(requestCreateDocument).Result; var result = responseresult.Content.ReadAsStringAsync().Result; var jsonData = JsonConvert.DeserializeObject(result); } } #endregion #region Generate Grant Token //WebRequest requestGenGrantToken = WebRequest.Create("https://accounts.zoho.com/oauth/v2/auth?scope=ZohoSign.documents.all&client_id=1000.522HB3WI52Q679002L4O6H06FMHUCH&state=testing&response_type=code&redirect_uri=https://www.zohoapis.com/crm/v2/&access_type=offline"); //requestGenGrantToken.Method = "GET"; //WebResponse responseGenGrantToken = requestGenGrantToken.GetResponse(); //var responseTextGenGrantToken = new StreamReader(responseGenGrantToken.GetResponseStream()).ReadToEnd(); ////var resultGenGrantToken = JsonConvert.DeserializeObject(responseTextGenGrantToken); #endregion return(View()); }
public ActionResult Create(CreateDocumentModel model) { var tag = repository.GetGroups() .Where(g => g.GroupID == model.GroupID) .First() .Tags .Where(t => t.TagName.Trim().EndsWith(PLAN)) .First(); if (tag == null) { var errorinfo = new HandleErrorInfo(new Exception(string.Format("Тэга по планированию в группе id = {0} не существует", model.GroupID)), "Plan", "Create"); return(View("Error", errorinfo)); } if (model.HasParent) { if (model.Source == CreateDocumentModel.DocSource.Plan) // основан на заявке { var plan = repository.GetTagValue(tag.TagID, model.ParentDocumentDate, model.ParentDocumentDate.AddDays(1)).ToArray(); DateTime date = model.Date.AddHours(1); while (date <= model.Date.AddDays(1)) { double value = plan.Where(tv => tv.DateTime.Hour == date.Hour).First().Value; repository.AddTagValue(tag.TagID, date, Math.Round(value, 2)); date = date.AddHours(1); } } else if (model.Source == CreateDocumentModel.DocSource.Forecast) // основан на прогнозе { var forecasttag = repository.GetGroups() .Where(g => g.GroupID == model.GroupID) .First() .Tags .Where(t => t.TagName.Trim().EndsWith(FORECAST)) .First(); var forecast = repository.GetTagValue(forecasttag.TagID, model.ParentDocumentDate, model.ParentDocumentDate.AddDays(1)).ToArray(); DateTime date = model.Date.AddHours(1); while (date <= model.Date.AddDays(1)) { double value = forecast.Where(tv => tv.DateTime.Hour == date.Hour).First().Value; repository.AddTagValue(tag.TagID, date, Math.Round(value, 2)); date = date.AddHours(1); } } else // основан на факте { var facttag = repository.GetGroups() .Where(g => g.GroupID == model.GroupID) .First() .Tags .Where(t => t.TagName.Trim().EndsWith(FACT)) .First(); var forecast = repository.GetTagValue(facttag.TagID, model.ParentDocumentDate, model.ParentDocumentDate.AddDays(1)).ToArray(); DateTime date = model.Date.AddHours(1); while (date <= model.Date.AddDays(1)) { double value = forecast.Where(tv => tv.DateTime.Hour == date.Hour).First().Value; repository.AddTagValue(tag.TagID, date, Math.Round(value, 2)); date = date.AddHours(1); } } } else { DateTime date = model.Date.AddHours(1); while (date <= model.Date.AddDays(1)) { repository.AddTagValue(tag.TagID, date, 0.0f); date = date.AddHours(1); } } TempData["Message"] = "Документ успешно создан."; return(RedirectToAction("Edit", new { id = model.GroupID, date = model.Date.ToString("yyyy-MM-dd") })); }