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);
        }
Beispiel #2
0
        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.
        }
Beispiel #3
0
        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.");
        }
Beispiel #4
0
        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));
        }
Beispiel #5
0
        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));
            }
        }
Beispiel #6
0
        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));
        }
Beispiel #7
0
        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);
Beispiel #9
0
        //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());
        }
Beispiel #10
0
        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());
        }
Beispiel #11
0
        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") }));
        }