Beispiel #1
0
        public ActionResult ProjectStatusUpdate(string ids, byte status)
        {
            string res = "";

            if (SecurityCache.FormCan("Project", SecurityPermissionBaseTypeEnum.Edit))
            {
                List <Guid> guids       = new List <Guid>();
                string[]    separateIds = ids.Split(new string[] { ",", ", " }, StringSplitOptions.RemoveEmptyEntries);
                Guid        parseId;
                foreach (string id in separateIds)
                {
                    if (Guid.TryParse(id, out parseId))
                    {
                        guids.Add(parseId);
                    }
                    else
                    {
                        return(Content(ServiceStack.Text.JsonSerializer.SerializeToString <string>(null)));
                    }
                }

                OptimaJet.BJet.VTB.Project.SetStatus(guids, status);
                res = OptimaJet.Localization.LocalizationProvider.Provider.Get("The operation is completed") + "!";
                return(Content(DynamicEntityJSONDataSource.GetSuccess(res)));
            }
            else
            {
                res = OptimaJet.Localization.LocalizationProvider.Provider.Get("Access is denied") + "!";
                return(Content(DynamicEntityJSONDataSource.GetNotSuccess(res)));
            }
        }
Beispiel #2
0
        public ActionResult BudgetRollbackToVersion(Guid budgetid, Guid versionid, bool ignorecheck = false)
        {
            string message = string.Empty;

            if (!SecurityCache.FormCan("Budget", "RollbackVersion"))
            {
                message = OptimaJet.Localization.LocalizationProvider.Provider.Get("Access is denied");
                return(new ContentResult
                {
                    ContentType = "text/html",
                    Content = DynamicEntityJSONDataSource.GetNotSuccess(message)
                });
            }
            bool needConfirm;
            var  success = BudgetItem.RollbackToVersion(budgetid, versionid, ignorecheck, out needConfirm, out message);

            if (!success)
            {
                return new ContentResult
                       {
                           ContentType = "text/html",
                           Content     = DynamicEntityJSONDataSource.GetNotSuccess(message)
                       }
            }
            ;


            return(new ContentResult
            {
                ContentType = "text/html",
                Content = DynamicEntityJSONDataSource.GetSuccess(message, needConfirm)
            });
        }
Beispiel #3
0
        public ActionResult GetDocumentIds(Guid docTypeId, long startIndex = 0, long count = 0)
        {
            if (!CheckCurrentPermission())
            {
                return(Content(WsFactory.GetАccessDeniedHtmlFrom()));
            }

            string    metaViewName = WsFactory.GetMetaViewByDocTypeForSearch(docTypeId);
            ArrayList ids          = new ArrayList();

            if (!string.IsNullOrWhiteSpace(metaViewName))
            {
                var dataSource = new DynamicEntityJSONDataSource();
                var data       = dataSource.GetDataKey(metaViewName, null, startIndex, count);
                data.ToDataTable();

                var att = data.Metadata.Attributes.FirstOrDefault();
                foreach (DynamicEntity item in data.Entities)
                {
                    ids.Add(item.GetProperty(att.PropertyName));
                }
            }

            return(new ContentResult
            {
                ContentType = "text/html",
                Content = JsonSerializer.SerializeToString(ids)
            });
        }
        public ActionResult Bulk(string metaViewName)
        {
            var dataSource = new DynamicEntityJSONDataSource();

            var isNew = Request.HttpMethod.Equals("POST", StringComparison.InvariantCultureIgnoreCase);

            SecurityPermissionBaseTypeEnum type = isNew ? SecurityPermissionBaseTypeEnum.Add : SecurityPermissionBaseTypeEnum.Edit;

            if (!SecurityCache.ViewCan(metaViewName, type))
            {
                return new ContentResult
                {
                    ContentType = "text/html",
                    Content = DynamicEntityJSONDataSource.GetNotSuccess(WsFactory.GetАccessDeniedPage())
                };
            }

            var entityOperationType = DynamicEntityJSONDataSource.GetEntityOperationType(Request.QueryString);

            return new ContentResult
            {
                ContentType = "text/html",
                Content = dataSource.BulkApply(metaViewName, Request.Body(), isNew, entityOperationType)
            };
        }
Beispiel #5
0
        public ActionResult BudgetRecalc(Guid id)
        {
            string res = string.Empty;

            if (SecurityCache.FormCan("Budget", "Recalc"))
            {
                try
                {
                    OptimaJet.BJet.VTB.BudgetItem.RecalcBudget(id);
                    res = OptimaJet.Localization.LocalizationProvider.Provider.Get("Recalculation complete");
                }
                catch (Exception ex)
                {
                    Logger.Log.Error(ex);

                    return(new ContentResult
                    {
                        ContentType = "text/html",
                        Content = DynamicEntityJSONDataSource.GetNotSuccess(ex.Message)
                    });
                }
            }
            else
            {
                res = OptimaJet.Localization.LocalizationProvider.Provider.Get("Access is denied");
            }

            return(new ContentResult
            {
                ContentType = "text/html",
                Content = DynamicEntityJSONDataSource.GetSuccess(res)
            });
        }
Beispiel #6
0
        public ActionResult Bulk(string metaViewName)
        {
            var dataSource = new DynamicEntityJSONDataSource();

            var isNew = Request.HttpMethod.Equals("POST", StringComparison.InvariantCultureIgnoreCase);

            SecurityPermissionBaseTypeEnum type = isNew ? SecurityPermissionBaseTypeEnum.Add : SecurityPermissionBaseTypeEnum.Edit;

            if (!SecurityCache.ViewCan(metaViewName, type))
            {
                return(new ContentResult
                {
                    ContentType = "text/html",
                    Content = DynamicEntityJSONDataSource.GetNotSuccess(WsFactory.GetАccessDeniedPage())
                });
            }

            var entityOperationType = DynamicEntityJSONDataSource.GetEntityOperationType(Request.QueryString);

            return(new ContentResult
            {
                ContentType = "text/html",
                Content = dataSource.BulkApply(metaViewName, Request.Body(), isNew, entityOperationType)
            });
        }
Beispiel #7
0
        public ActionResult BudgetItemUploadFromExcel(string ignoreerror = null, string impimport = null)
        {
            var fileName = Guid.NewGuid().ToString("N");

            var filePath = Server.MapPath(Settings.Current["TemporaryFolderForImportExport"]);

            ExcelType excelType = ExcelType.Xlsx;

            try
            {
                if (Request.Files.Count != 1 || Request.Files[0] == null)
                {
                    return new ContentResult
                           {
                               ContentType = "text/html",
                               Content     = DynamicEntityJSONDataSource.GetNotSuccess("Неверное количество файлов в запросе.")
                           }
                }
                ;


                var ds     = ExcelHelper.FromExcel(Request.Files[0].InputStream, fileName, filePath, excelType);
                var report = "";
                OptimaJet.BJet.VTB.BudgetItem.Import(ds, out report, ignoreerror == "on", impimport == "on", BudgetItemImportProgress);

                return(new ContentResult
                {
                    ContentType = "text/html",
                    Content = DynamicEntityJSONDataSource.GetSuccess(report.Replace("\r\n", "&lt;/br&gt;"))
                });
            }
            catch (Exception ex)
            {
                Logger.Log.Error(string.Format("Ошибка загрузки шаблона Budget Items"), ex);
                return(new ContentResult
                {
                    ContentType = "text/html",
                    Content = DynamicEntityJSONDataSource.GetNotSuccess(ex.Message)
                });
            }
            finally
            {
                try
                {
                    var fullName = ExcelHelper.GetFullFilePath(fileName, filePath, excelType);

                    if (System.IO.File.Exists(fullName))
                    {
                        System.IO.File.Delete(fullName);
                    }
                }
                catch (Exception ex)
                {
                    Logger.Log.Error("Ошибка удаления временного файла", ex);
                }
            }
        }
        public ActionResult GetDocumentCount(Guid docTypeId)
        {
            if (!CheckCurrentPermission())
                return Content(WsFactory.GetАccessDeniedHtmlFrom());

            string metaViewName = WsFactory.GetMetaViewByDocTypeForSearch(docTypeId);
            long count = 0;

            if (!string.IsNullOrWhiteSpace(metaViewName))
            {
                var dataSource = new DynamicEntityJSONDataSource();
                count = dataSource.GetDataCount(metaViewName, null);
            }
            return Content(JsonSerializer.SerializeToString(count));
        }
Beispiel #9
0
        public ActionResult GetBudgetVersions(Guid id, bool excludecurrent)
        {
            var budgetversions = excludecurrent ?
                                 DynamicRepository.GetByEntity("BudgetVersion",
                                                               FilterCriteriaSet.And.Equal(id, "BudgetId").NotEqual(true, "IsCurrent"),
                                                               OrderByCriteriaSet.Asc("Name")) :
                                 DynamicRepository.GetByEntity("BudgetVersion",
                                                               FilterCriteriaSet.And.Equal(id, "BudgetId"),
                                                               OrderByCriteriaSet.Asc("Name"));

            return(new ContentResult
            {
                ContentType = "text/html",
                Content = DynamicEntityJSONDataSource.GetSuccessWithPlainSerializedValues("OK", budgetversions, "values")
            });
        }
Beispiel #10
0
        public ActionResult GetHistory(string metaViewName, Guid id)
        {
            if (!SecurityCache.ViewCan(metaViewName, SecurityPermissionBaseTypeEnum.View))
            {
                return(new ContentResult
                {
                    ContentType = "text/html",
                    Content = DynamicEntityJSONDataSource.GetNotSuccess(WsFactory.GetАccessDeniedPage())
                });
            }

            return(new ContentResult
            {
                ContentType = "text/html",
                Content = VersionFormatter.GetObjectHistoryInHtml(id)
            });
        }
Beispiel #11
0
        public ActionResult GetDocumentCount(Guid docTypeId)
        {
            if (!CheckCurrentPermission())
            {
                return(Content(WsFactory.GetАccessDeniedHtmlFrom()));
            }


            string metaViewName = WsFactory.GetMetaViewByDocTypeForSearch(docTypeId);
            long   count        = 0;

            if (!string.IsNullOrWhiteSpace(metaViewName))
            {
                var dataSource = new DynamicEntityJSONDataSource();
                count = dataSource.GetDataCount(metaViewName, null);
            }
            return(Content(JsonSerializer.SerializeToString(count)));
        }
Beispiel #12
0
        public ActionResult InvoiceToState(Guid id, byte state)
        {
            string res = string.Empty;

            if (!SecurityCache.FormCan("Invoice", "ChangeState"))
            {
                return(new ContentResult
                {
                    ContentType = "text/html",
                    Content = DynamicEntityJSONDataSource.GetNotSuccess(OptimaJet.Localization.LocalizationProvider.Provider.Get("Access is denied"))
                });
            }


            try
            {
                var error = OptimaJet.BJet.VTB.Invoice.ToState(id, state);
                if (!string.IsNullOrWhiteSpace(error))
                {
                    return(new ContentResult
                    {
                        ContentType = "text/html",
                        Content = DynamicEntityJSONDataSource.GetNotSuccess(error)
                    });
                }
                res = OptimaJet.Localization.LocalizationProvider.Provider.Get("State is changed");
            }
            catch (Exception ex)
            {
                Logger.Log.Error(ex);

                return(new ContentResult
                {
                    ContentType = "text/html",
                    Content = DynamicEntityJSONDataSource.GetNotSuccess(ex.Message)
                });
            }

            return(new ContentResult
            {
                ContentType = "text/html",
                Content = DynamicEntityJSONDataSource.GetSuccess(res)
            });
        }
Beispiel #13
0
        public ActionResult BudgetItemChangeManager(Guid employeeid, string budgetitems)
        {
            var idsList = budgetitems.Split(',').Where(x => !string.IsNullOrWhiteSpace(x)).Select(x => new Guid(x)).ToList();

            if (SecurityCache.FormCan("BudgetItem", "ChangeManager"))
            {
                try
                {
                    string message;
                    if (BudgetItem.ChangeManager(employeeid, idsList, out message))
                    {
                        return(new ContentResult
                        {
                            ContentType = "text/html",
                            Content = DynamicEntityJSONDataSource.GetSuccess(message)
                        });
                    }

                    return(new ContentResult
                    {
                        ContentType = "text/html",
                        Content = DynamicEntityJSONDataSource.GetNotSuccess(message)
                    });
                }
                catch (Exception ex)
                {
                    Logger.Log.Error(ex);

                    return(new ContentResult
                    {
                        ContentType = "text/html",
                        Content = DynamicEntityJSONDataSource.GetNotSuccess(ex.Message)
                    });
                }
            }
            else
            {
                return(new ContentResult
                {
                    ContentType = "text/html",
                    Content = DynamicEntityJSONDataSource.GetNotSuccess(OptimaJet.Localization.LocalizationProvider.Provider.Get("Access is denied"))
                });
            }
        }
Beispiel #14
0
        private EntityContainer GetDataFromRequest(string metaViewName)
        {
            var dataSource = new DynamicEntityJSONDataSource();

            var extra = DynamicEntityJSONDataSource.GetExtra(Request.QueryString);

            if (extra != null)
            {
                extra = extra.ToLower();
            }

            return(dataSource.GetData(metaViewName,
                                      DynamicEntityJSONDataSource.GetSort(Request.QueryString),
                                      DynamicEntityJSONDataSource.GetFilter(Request.QueryString),
                                      DynamicEntityJSONDataSource.GetSearch(Request.QueryString),
                                      extra,
                                      DynamicEntityJSONDataSource.GetBaseEntityIdName(Request.QueryString),
                                      DynamicEntityJSONDataSource.GetBaseEntityIdValue(Request.QueryString)));
        }
Beispiel #15
0
        public ActionResult RunImportFXRate()
        {
            string report = String.Empty;
            bool   res    = false;

            //if (SecurityCache.CheckPermission("Form_FXRate", "Add"))
            //{
            //    try
            //    {
            //        CultureInfo cInfo = CultureInfo.CurrentCulture;
            //        DateTime startDate = DateTime.ParseExact(Request.Form.Get("startDate"), "dd.MM.yyyy", cInfo);
            //        DateTime endDate = DateTime.ParseExact(Request.Form.Get("endDate"), "dd.MM.yyyy", cInfo);

            //        FXRateImporter importer = new FXRateImporter(FXRateMethods.FXRateImportView, FXRateMethods.FXRateImportConnectionString);
            //        res = importer.ImportFXRates(startDate, endDate, out report);
            //    }
            //    catch (Exception ex)
            //    {
            //        Logger.Log.Error(ex);

            //        return new ContentResult
            //        {
            //            ContentType = "text/html",
            //            Content = DynamicEntityJSONDataSource.GetNotSuccess(ex.Message)
            //        };
            //    }
            //}
            //else
            //{
            report = LocalizationProvider.Provider.Get("Access is denied");
            //}

            return(new ContentResult
            {
                ContentType = "text/html",
                Content = res ? DynamicEntityJSONDataSource.GetSuccess(LocalizationProvider.Provider.Get("Import has been completed successfully"))
                    : DynamicEntityJSONDataSource.GetNotSuccess(report)
            });
        }
Beispiel #16
0
        public ActionResult ExportCSV(string metaViewName, string entityIds)
        {
            if (!SecurityCache.ViewCan(metaViewName, SecurityPermissionBaseTypeEnum.View))
            {
                return(Content(WsFactory.GetАccessDeniedHtmlFrom()));
            }

            EventsLogHelper.ExportData("CSV", metaViewName, Request);

            EntityContainer data;

            if (string.IsNullOrEmpty(entityIds))
            {
                data = GetDataFromRequest(metaViewName);
            }
            else
            {
                data = GetDataFromRequest(metaViewName, entityIds);
            }

            return(File(data.ToCsv(DynamicEntityJSONDataSource.GetFieldColumns(Request.QueryString)), "application/CSV", string.Format("{0}.csv", metaViewName)));
        }
Beispiel #17
0
        public ActionResult ExportXls(string metaViewName, string entityIds)
        {
            if (!SecurityCache.ViewCan(metaViewName, SecurityPermissionBaseTypeEnum.View))
            {
                return(Content(WsFactory.GetАccessDeniedHtmlFrom()));
            }

            EventsLogHelper.ExportData("Xls", metaViewName, Request);

            EntityContainer data;

            if (string.IsNullOrEmpty(entityIds))
            {
                data = GetDataFromRequest(metaViewName);
            }
            else
            {
                data = GetDataFromRequest(metaViewName, entityIds);
            }
            var dt = data.ToDataTable(DynamicEntityJSONDataSource.GetFieldColumns(Request.QueryString));

            return(GridExportHelper.ExportToXls(metaViewName, dt));
        }
Beispiel #18
0
        private ContentResult Get(string metaViewName, DynamicEntityJSONDataSource dataSource, string extra)
        {
            var viewAllowViewDeleted = new List <string>()
            {
                "BudgetItem_Edit",
                "LegalEntity_Edit",
                "Invoice_Edit",
                "Contract_Edit"
            };

            bool ignoreDeleteFilter = false;

            if (viewAllowViewDeleted.Contains(metaViewName))
            {
                ignoreDeleteFilter = true;
            }

            return(new ContentResult
            {
                ContentType = "text/html",
                Content = dataSource.GetJSONData(metaViewName,
                                                 DynamicEntityJSONDataSource.GetEntityOperationType(Request.QueryString),
                                                 DynamicEntityJSONDataSource.GetPageSize(Request.QueryString),
                                                 DynamicEntityJSONDataSource.GetPageNumber(Request.QueryString),
                                                 DynamicEntityJSONDataSource.GetSort(Request.QueryString),
                                                 DynamicEntityJSONDataSource.GetFilter(Request.QueryString),
                                                 DynamicEntityJSONDataSource.GetSearch(Request.QueryString),
                                                 extra,
                                                 DynamicEntityJSONDataSource.GetBaseEntityIdName(Request.QueryString),
                                                 DynamicEntityJSONDataSource.GetBaseEntityIdValue(Request.QueryString),
                                                 DynamicEntityJSONDataSource.GetCallback(Request.QueryString),
                                                 DynamicEntityJSONDataSource.GetVisibility(Request.QueryString),
                                                 GetShowDeleted(metaViewName),
                                                 ignoreDeleteFilter
                                                 )
            });
        }
 private EntityContainer GetDataFromRequest(string metaViewName, string entityIds)
 {
     var dataSource = new DynamicEntityJSONDataSource();
     return dataSource.GetData(metaViewName, entityIds);
 }
Beispiel #20
0
 private bool GetShowDeleted(string metaViewName)
 {
     //return true;
     return(DynamicEntityJSONDataSource.GetShowDeleted(Request.QueryString)
            );//&& SecurityCache.CheckPermission("Common", "ShowDeleteDeleted");
 }
Beispiel #21
0
        public ActionResult Get(string metaViewName)
        {
            ActionResult res = new EmptyResult();

            var dataSource = new DynamicEntityJSONDataSource();

            if (Request.HttpMethod.Equals("GET", StringComparison.InvariantCultureIgnoreCase))
            {
                if (!SecurityCache.ViewCan(metaViewName, SecurityPermissionBaseTypeEnum.View))
                {
                    return(new ContentResult
                    {
                        ContentType = "text/html",
                        Content = DynamicEntityJSONDataSource.GetNotSuccess(WsFactory.GetАccessDeniedPage())
                    });
                }

                var extra = DynamicEntityJSONDataSource.GetExtra(Request.QueryString).ToLower();
                res = Get(metaViewName, dataSource, extra);
            }
            else if (Request.HttpMethod.Equals("POST", StringComparison.InvariantCultureIgnoreCase))
            {
                if (!SecurityCache.ViewCan(metaViewName, SecurityPermissionBaseTypeEnum.Add))
                {
                    return(new ContentResult
                    {
                        ContentType = "text/html",
                        Content = DynamicEntityJSONDataSource.GetNotSuccess(WsFactory.GetАccessDeniedPage())
                    });
                }

                var updatedJson = Request.Body();
                res = new ContentResult
                {
                    ContentType = "text/html",
                    Content     = dataSource.Insert(metaViewName,
                                                    DynamicEntityJSONDataSource.GetEntityOperationType(Request.QueryString),
                                                    updatedJson,
                                                    DynamicEntityJSONDataSource.GetExtra(Request.Params),
                                                    DynamicEntityJSONDataSource.GetVisibility(Request.QueryString),
                                                    DynamicEntityJSONDataSource.GetBaseEntityIdName(Request.Params),
                                                    DynamicEntityJSONDataSource.GetBaseEntityIdValue(Request.Params))
                };
            }
            else if (Request.HttpMethod.Equals("PUT", StringComparison.InvariantCultureIgnoreCase))
            {
                if (!SecurityCache.ViewCan(metaViewName, SecurityPermissionBaseTypeEnum.Edit))
                {
                    return(new ContentResult
                    {
                        ContentType = "text/html",
                        Content = DynamicEntityJSONDataSource.GetNotSuccess(WsFactory.GetАccessDeniedPage())
                    });
                }

                var updatedJson = Request.Body();

                res = new ContentResult
                {
                    ContentType = "text/html",
                    Content     =
                        dataSource.Update(metaViewName,
                                          updatedJson,
                                          DynamicEntityJSONDataSource.GetExtra(Request.Params),
                                          DynamicEntityJSONDataSource.GetVisibility(Request.QueryString),
                                          DynamicEntityJSONDataSource.GetBaseEntityIdName(Request.QueryString),
                                          DynamicEntityJSONDataSource.GetBaseEntityIdValue(Request.QueryString))
                };
            }
            else if (Request.HttpMethod.Equals("DELETE", StringComparison.InvariantCultureIgnoreCase))
            {
                if (!SecurityCache.ViewCan(metaViewName, SecurityPermissionBaseTypeEnum.Delete))
                {
                    return(new ContentResult
                    {
                        ContentType = "text/html",
                        Content = DynamicEntityJSONDataSource.GetNotSuccess(WsFactory.GetАccessDeniedPage())
                    });
                }

                var    updatedJson = Request.Body();
                string validateRes = string.Empty;

                if (metaViewName != "Budget")
                {
                    if (!MetadataRepositoty.ValidadateDelete(metaViewName, updatedJson, out validateRes))
                    {
                        return(new ContentResult
                        {
                            ContentType = "text/html",
                            Content = DynamicEntityJSONDataSource.GetNotSuccess(validateRes)
                        });
                    }
                }

                res = new ContentResult
                {
                    ContentType = "text/html",
                    Content     =
                        dataSource.Delete(metaViewName,
                                          updatedJson,
                                          DynamicEntityJSONDataSource.GetExtra(Request.Params),
                                          DynamicEntityJSONDataSource.GetBaseEntityIdName(Request.QueryString),
                                          DynamicEntityJSONDataSource.GetBaseEntityIdValue(Request.QueryString))
                };
            }


            return(res);
        }
        public ActionResult Get(string metaViewName)
        {
            ActionResult res = new EmptyResult();

            var dataSource = new DynamicEntityJSONDataSource();

            if (Request.HttpMethod.Equals("GET", StringComparison.InvariantCultureIgnoreCase))
            {

                if (!SecurityCache.ViewCan(metaViewName, SecurityPermissionBaseTypeEnum.View))
                {
                    return new ContentResult
                    {
                        ContentType = "text/html",
                        Content = DynamicEntityJSONDataSource.GetNotSuccess(WsFactory.GetАccessDeniedPage())
                    };
                }

                var extra = DynamicEntityJSONDataSource.GetExtra(Request.QueryString).ToLower();
                res = Get(metaViewName, dataSource, extra);
            }
            else if (Request.HttpMethod.Equals("POST", StringComparison.InvariantCultureIgnoreCase))
            {
                if (!SecurityCache.ViewCan(metaViewName, SecurityPermissionBaseTypeEnum.Add))
                {
                    return new ContentResult
                    {
                        ContentType = "text/html",
                        Content = DynamicEntityJSONDataSource.GetNotSuccess(WsFactory.GetАccessDeniedPage())
                    };
                }

                var updatedJson = Request.Body();
                res = new ContentResult
                    {
                        ContentType = "text/html",
                        Content = dataSource.Insert(metaViewName,
                                                    DynamicEntityJSONDataSource.GetEntityOperationType(Request.QueryString),
                                                    updatedJson,
                                                    DynamicEntityJSONDataSource.GetExtra(Request.Params),
                                                    DynamicEntityJSONDataSource.GetVisibility(Request.QueryString),
                                                    DynamicEntityJSONDataSource.GetBaseEntityIdName(Request.Params),
                                                    DynamicEntityJSONDataSource.GetBaseEntityIdValue(Request.Params))
                    };
            }
            else if (Request.HttpMethod.Equals("PUT", StringComparison.InvariantCultureIgnoreCase))
            {
                if (!SecurityCache.ViewCan(metaViewName, SecurityPermissionBaseTypeEnum.Edit))
                {
                    return new ContentResult
                    {
                        ContentType = "text/html",
                        Content = DynamicEntityJSONDataSource.GetNotSuccess(WsFactory.GetАccessDeniedPage())
                    };
                }

                var updatedJson = Request.Body();

                res = new ContentResult
                    {
                        ContentType = "text/html",
                        Content =
                            dataSource.Update(metaViewName,
                                              updatedJson,
                                              DynamicEntityJSONDataSource.GetExtra(Request.Params),
                                              DynamicEntityJSONDataSource.GetVisibility(Request.QueryString),
                                              DynamicEntityJSONDataSource.GetBaseEntityIdName(Request.QueryString),
                                              DynamicEntityJSONDataSource.GetBaseEntityIdValue(Request.QueryString))

                    };
            }
            else if (Request.HttpMethod.Equals("DELETE", StringComparison.InvariantCultureIgnoreCase))
            {
                if (!SecurityCache.ViewCan(metaViewName, SecurityPermissionBaseTypeEnum.Delete))
                {
                    return new ContentResult
                    {
                        ContentType = "text/html",
                        Content = DynamicEntityJSONDataSource.GetNotSuccess(WsFactory.GetАccessDeniedPage())
                    };
                }

                var updatedJson = Request.Body();
                string validateRes = string.Empty;

                if (metaViewName != "Budget")
                {
                    if (!MetadataRepositoty.ValidadateDelete(metaViewName, updatedJson, out validateRes))
                    {
                        return new ContentResult
                        {
                            ContentType = "text/html",
                            Content = DynamicEntityJSONDataSource.GetNotSuccess(validateRes)
                        };
                    }
                }

                res = new ContentResult
                    {
                        ContentType = "text/html",
                        Content =
                            dataSource.Delete(metaViewName,
                                              updatedJson,
                                              DynamicEntityJSONDataSource.GetExtra(Request.Params),
                                              DynamicEntityJSONDataSource.GetBaseEntityIdName(Request.QueryString),
                                              DynamicEntityJSONDataSource.GetBaseEntityIdValue(Request.QueryString))
                    };

            }

            return res;
        }
Beispiel #23
0
        private EntityContainer GetDataFromRequest(string metaViewName, string entityIds)
        {
            var dataSource = new DynamicEntityJSONDataSource();

            return(dataSource.GetData(metaViewName, entityIds));
        }
        public ActionResult GetAJAXTree(string metaViewName)
        {
            ActionResult res = new EmptyResult();
            var dataSource = new DynamicEntityJSONDataSource();

            if (Request.HttpMethod.Equals("GET", StringComparison.InvariantCultureIgnoreCase))
            {
                if (!SecurityCache.ViewCan(metaViewName, SecurityPermissionBaseTypeEnum.View))
                {
                    return new ContentResult
                        {
                            ContentType = "text/html",
                            Content = DynamicEntityJSONDataSource.GetNotSuccess(WsFactory.GetАccessDeniedPage())
                        };
                }

                res = new ContentResult
                    {
                        ContentType = "text/html",

                        Content = dataSource.GetJSONAJAXTreeData(metaViewName,
                                                                 DynamicEntityJSONDataSource.GetSort(Request.QueryString),
                                                                 DynamicEntityJSONDataSource.GetSearch(Request.QueryString),
                                                                 DynamicEntityJSONDataSource.GetExtra(Request.Params),
                                                                 DynamicEntityJSONDataSource.GetBaseEntityIdName(Request.QueryString),
                                                                 DynamicEntityJSONDataSource.GetBaseEntityIdValue(Request.QueryString),
                                                                 DynamicEntityJSONDataSource.GetCallback(Request.QueryString),
                                                                 DynamicEntityJSONDataSource.GetNodeValue(Request.QueryString),
                                                                 DynamicEntityJSONDataSource.GetVisibility(Request.QueryString), GetShowDeleted(metaViewName)
                            )
                    };
            }
            else if (Request.HttpMethod.Equals("DELETE", StringComparison.InvariantCultureIgnoreCase))
            {
                if (!SecurityCache.ViewCan(metaViewName, SecurityPermissionBaseTypeEnum.Delete))
                {
                    return new ContentResult
                        {
                            ContentType = "text/html",
                            Content = DynamicEntityJSONDataSource.GetNotSuccess(WsFactory.GetАccessDeniedPage())
                        };
                }

                var updatedJson = Request.Body();
                string validateRes = string.Empty;
                if (!MetadataRepositoty.ValidadateDelete(metaViewName, updatedJson, out validateRes))
                {
                    return new ContentResult
                    {
                        ContentType = "text/html",
                        Content = DynamicEntityJSONDataSource.GetNotSuccess(validateRes)
                    };
                }

                return new ContentResult
                    {
                        ContentType = "text/html",
                        Content =
                            dataSource.Delete(metaViewName,
                                              updatedJson,
                                              DynamicEntityJSONDataSource.GetExtra(Request.Params),
                                              DynamicEntityJSONDataSource.GetBaseEntityIdName(Request.QueryString),
                                              DynamicEntityJSONDataSource.GetBaseEntityIdValue(Request.QueryString))
                    };

            }

            return res;
        }
        private ContentResult Get(string metaViewName, DynamicEntityJSONDataSource dataSource, string extra)
        {
            var viewAllowViewDeleted = new List<string>(){
               "BudgetItem_Edit",
               "LegalEntity_Edit",
               "Invoice_Edit",
               "Contract_Edit"
            };

            bool ignoreDeleteFilter = false;

            if(viewAllowViewDeleted.Contains(metaViewName)){
                ignoreDeleteFilter = true;
            }

            return new ContentResult
            {
                ContentType = "text/html",
                Content = dataSource.GetJSONData(metaViewName,
                    DynamicEntityJSONDataSource.GetEntityOperationType(Request.QueryString),
                    DynamicEntityJSONDataSource.GetPageSize(Request.QueryString),
                    DynamicEntityJSONDataSource.GetPageNumber(Request.QueryString),
                    DynamicEntityJSONDataSource.GetSort(Request.QueryString),
                    DynamicEntityJSONDataSource.GetFilter(Request.QueryString),
                    DynamicEntityJSONDataSource.GetSearch(Request.QueryString),
                    extra,
                    DynamicEntityJSONDataSource.GetBaseEntityIdName(Request.QueryString),
                    DynamicEntityJSONDataSource.GetBaseEntityIdValue(Request.QueryString),
                    DynamicEntityJSONDataSource.GetCallback(Request.QueryString),
                    DynamicEntityJSONDataSource.GetVisibility(Request.QueryString),
                    GetShowDeleted(metaViewName),
                    ignoreDeleteFilter
                    )

            };
        }
Beispiel #26
0
        public ActionResult GetAJAXTree(string metaViewName)
        {
            ActionResult res        = new EmptyResult();
            var          dataSource = new DynamicEntityJSONDataSource();

            if (Request.HttpMethod.Equals("GET", StringComparison.InvariantCultureIgnoreCase))
            {
                if (!SecurityCache.ViewCan(metaViewName, SecurityPermissionBaseTypeEnum.View))
                {
                    return(new ContentResult
                    {
                        ContentType = "text/html",
                        Content = DynamicEntityJSONDataSource.GetNotSuccess(WsFactory.GetАccessDeniedPage())
                    });
                }



                res = new ContentResult
                {
                    ContentType = "text/html",

                    Content = dataSource.GetJSONAJAXTreeData(metaViewName,
                                                             DynamicEntityJSONDataSource.GetSort(Request.QueryString),
                                                             DynamicEntityJSONDataSource.GetSearch(Request.QueryString),
                                                             DynamicEntityJSONDataSource.GetExtra(Request.Params),
                                                             DynamicEntityJSONDataSource.GetBaseEntityIdName(Request.QueryString),
                                                             DynamicEntityJSONDataSource.GetBaseEntityIdValue(Request.QueryString),
                                                             DynamicEntityJSONDataSource.GetCallback(Request.QueryString),
                                                             DynamicEntityJSONDataSource.GetNodeValue(Request.QueryString),
                                                             DynamicEntityJSONDataSource.GetVisibility(Request.QueryString), GetShowDeleted(metaViewName)
                                                             )
                };
            }
            else if (Request.HttpMethod.Equals("DELETE", StringComparison.InvariantCultureIgnoreCase))
            {
                if (!SecurityCache.ViewCan(metaViewName, SecurityPermissionBaseTypeEnum.Delete))
                {
                    return(new ContentResult
                    {
                        ContentType = "text/html",
                        Content = DynamicEntityJSONDataSource.GetNotSuccess(WsFactory.GetАccessDeniedPage())
                    });
                }

                var    updatedJson = Request.Body();
                string validateRes = string.Empty;
                if (!MetadataRepositoty.ValidadateDelete(metaViewName, updatedJson, out validateRes))
                {
                    return(new ContentResult
                    {
                        ContentType = "text/html",
                        Content = DynamicEntityJSONDataSource.GetNotSuccess(validateRes)
                    });
                }

                return(new ContentResult
                {
                    ContentType = "text/html",
                    Content =
                        dataSource.Delete(metaViewName,
                                          updatedJson,
                                          DynamicEntityJSONDataSource.GetExtra(Request.Params),
                                          DynamicEntityJSONDataSource.GetBaseEntityIdName(Request.QueryString),
                                          DynamicEntityJSONDataSource.GetBaseEntityIdValue(Request.QueryString))
                });
            }

            return(res);
        }
Beispiel #27
0
        public ActionResult UploadExcelForClient(string name, string type = "Xlsx")
        {
            var fileName = Guid.NewGuid().ToString("N");
            var filePath = Server.MapPath(Settings.Current["TemporaryFolderForImportExport"]);

            ExcelType excelType;

            ExcelType.TryParse(type, true, out excelType);

            try
            {
                if (Request.Files.Count != 1 || Request.Files[0] == null)
                {
                    return new ContentResult
                           {
                               ContentType = "text/html",
                               Content     = DynamicEntityJSONDataSource.GetNotSuccess("Неверное количество файлов в запросе.")
                           }
                }
                ;


                var ds = ExcelHelper.FromExcel(Request.Files[0].InputStream, fileName, filePath, excelType);

                List <dynamic> records;
                var            result = ImportExportHelper.ImportForClient(name, ds, out records);
                var            report = result.GetReport(new ImportResultTextFormatter());

                var res = new
                {
                    success = !(result.HaveMappingErrors || result.HaveParsingErrors),
                    message = report,
                    records = records.Select(c => (c as DynamicEntity).Dictionary).ToArray()
                };

                return(new ContentResult
                {
                    ContentType = "text/html",
                    Content = ServiceStack.Text.JsonSerializer.SerializeToString(res)
                });
            }
            catch (Exception ex)
            {
                Logger.Log.Error(string.Format("Ошибка загрузки шаблона {0}", name), ex);

                return(new ContentResult
                {
                    ContentType = "text/html",
                    Content = DynamicEntityJSONDataSource.GetNotSuccess(ex.Message)
                });
            }
            finally
            {
                try
                {
                    var fullName = ExcelHelper.GetFullFilePath(fileName, filePath, excelType);

                    if (System.IO.File.Exists(fullName))
                    {
                        System.IO.File.Delete(fullName);
                    }
                }
                catch (Exception ex)
                {
                    Logger.Log.Error("Ошибка удаления временного файла", ex);
                }
            }
        }
Beispiel #28
0
        public ActionResult UploadExcel(string name, string type = "Xlsx")
        {
            var fileName = Guid.NewGuid().ToString("N");

            var filePath = Server.MapPath(Settings.Current["TemporaryFolderForImportExport"]);

            ExcelType excelType;

            ExcelType.TryParse(type, true, out excelType);

            try
            {
                if (Request.Files.Count != 1 || Request.Files[0] == null)
                {
                    return new ContentResult
                           {
                               ContentType = "text/html",
                               Content     = DynamicEntityJSONDataSource.GetNotSuccess("Неверное количество файлов в запросе.")
                           }
                }
                ;


                var ds = ExcelHelper.FromExcel(Request.Files[0].InputStream, fileName, filePath, excelType);


                var result = ImportExportHelper.Import(name, ds);

                var report = result.GetReport(new ImportResultTextFormatter());


                return(new ContentResult
                {
                    ContentType = "text/html",
                    Content = DynamicEntityJSONDataSource.GetSuccess(report.Replace("\r\n", "&lt;/br&gt;"))
                });
            }
            catch (OptimaJet.DynamicEntities.Exceptions.DynamicEntitiesConvertException ex)
            {
                string msg = String.Format("{0}: {1}.", LocalizationProvider.Provider.Get("Error of template loading"),
                                           LocalizationProvider.Provider.Get("Incorrect format of fields in file"));

                Logger.Log.Error(ex.Message, ex);
                return(new ContentResult
                {
                    ContentType = "text/html",
                    Content = DynamicEntityJSONDataSource.GetNotSuccess(msg)
                });
            }
            catch (Exception ex)
            {
                Logger.Log.Error(LocalizationProvider.Provider.Get("Error of template loading") + " " + name, ex);
                return(new ContentResult
                {
                    ContentType = "text/html",
                    Content = DynamicEntityJSONDataSource.GetNotSuccess(ex.Message)
                });
            }
            finally
            {
                try
                {
                    var fullName = ExcelHelper.GetFullFilePath(fileName, filePath, excelType);

                    if (System.IO.File.Exists(fullName))
                    {
                        System.IO.File.Delete(fullName);
                    }
                }
                catch (Exception ex)
                {
                    Logger.Log.Error("Ошибка удаления временного файла", ex);
                }
            }
        }
        public ActionResult GetDocumentIds(Guid docTypeId, long startIndex = 0, long count = 0)
        {
            if (!CheckCurrentPermission())
                return Content(WsFactory.GetАccessDeniedHtmlFrom());

            string metaViewName = WsFactory.GetMetaViewByDocTypeForSearch(docTypeId);
            ArrayList ids = new ArrayList();
            if (!string.IsNullOrWhiteSpace(metaViewName))
            {
                var dataSource = new DynamicEntityJSONDataSource();
                var data = dataSource.GetDataKey(metaViewName, null, startIndex, count);
                data.ToDataTable();

                var att = data.Metadata.Attributes.FirstOrDefault();
                foreach (DynamicEntity item in data.Entities)
                {
                    ids.Add(item.GetProperty(att.PropertyName));
                }
            }

            return new ContentResult
            {
                ContentType = "text/html",
                Content = JsonSerializer.SerializeToString(ids)
            };
        }
        private EntityContainer GetDataFromRequest(string metaViewName)
        {
            var dataSource = new DynamicEntityJSONDataSource();

            var extra = DynamicEntityJSONDataSource.GetExtra(Request.QueryString);
            if (extra != null)
                extra = extra.ToLower();

            return dataSource.GetData(metaViewName,
                                      DynamicEntityJSONDataSource.GetSort(Request.QueryString),
                                      DynamicEntityJSONDataSource.GetFilter(Request.QueryString),
                                      DynamicEntityJSONDataSource.GetSearch(Request.QueryString),
                                      extra,
                                      DynamicEntityJSONDataSource.GetBaseEntityIdName(Request.QueryString),
                                      DynamicEntityJSONDataSource.GetBaseEntityIdValue(Request.QueryString));
        }