public FinanceInvoiceViewModel DestroyFinanceInvoice(FinanceInvoiceViewModel givenFinanceInvoice)
        {
            this.Data.FinanceInvoices.Delete(givenFinanceInvoice.Id);
            this.Data.SaveChanges();

            return givenFinanceInvoice;
        }
        public FinanceInvoiceViewModel CreateFinanceInvoice(FinanceInvoiceViewModel givenFinanceInvoice)
        {
            if (givenFinanceInvoice == null)
            {
                return null;
            }

            var newFinanceInvoice = new FinanceInvoice
            {
                NumberOfInvoice = givenFinanceInvoice.NumberOfInvoice,
                Date = givenFinanceInvoice.Date,
                Receiver = givenFinanceInvoice.Receiver,
                Preview = givenFinanceInvoice.Preview,
                SumWithoutDdS = givenFinanceInvoice.SumWithoutDdS,
                SumWithDds = givenFinanceInvoice.SumWithDds,
                IsVisible = givenFinanceInvoice.IsVisible
            };

            this.Data.FinanceInvoices.Add(newFinanceInvoice);
            this.Data.SaveChanges();

            givenFinanceInvoice.Id = newFinanceInvoice.Id;

            return givenFinanceInvoice;
        }
        public JsonResult DestroyFinanceInvoice([DataSourceRequest] DataSourceRequest request, FinanceInvoiceViewModel financeInvoiceModel)
        {
            var deletedFinanceInvoice = this.financeInvoices.DestroyFinanceInvoice(financeInvoiceModel);

            var loggedUserId = User.Identity.GetUserId();
            Base.CreateActivity(ActivityType.Delete, deletedFinanceInvoice.Id.ToString(), ActivityTargetType.FinanceInvoice, loggedUserId);

            return Json(new[] { financeInvoiceModel }, JsonRequestBehavior.AllowGet);
        }
        public JsonResult CreateFinanceInvoice([DataSourceRequest]  DataSourceRequest request, FinanceInvoiceViewModel financeInvoiceModel)
        {
            if (financeInvoiceModel == null || !ModelState.IsValid)
            {
                return Json(new[] { financeInvoiceModel }.ToDataSourceResult(request, ModelState), JsonRequestBehavior.AllowGet);
            }

            var createdFinanceInvoice = this.financeInvoices.CreateFinanceInvoice(financeInvoiceModel);

            var loggedUserId = User.Identity.GetUserId();
            Base.CreateActivity(ActivityType.Create, createdFinanceInvoice.Id.ToString(), ActivityTargetType.FinanceInvoice, loggedUserId);

            financeInvoiceModel.Id = createdFinanceInvoice.Id;

            return Json(new[] { financeInvoiceModel }.ToDataSourceResult(request, ModelState), JsonRequestBehavior.AllowGet);
        }
        public FinanceInvoiceViewModel UpdateFinanceInvoice(FinanceInvoiceViewModel givenFinanceInvoice)
        {
            var invoiceFromDb = this.Data.FinanceInvoices
                .All()
              .FirstOrDefault(p => p.Id == givenFinanceInvoice.Id);

            if (givenFinanceInvoice == null || invoiceFromDb == null)
            {
                return givenFinanceInvoice;
            }

            invoiceFromDb.NumberOfInvoice = givenFinanceInvoice.NumberOfInvoice;
            invoiceFromDb.Date = givenFinanceInvoice.Date;
            invoiceFromDb.Receiver = givenFinanceInvoice.Receiver;
            invoiceFromDb.Preview = givenFinanceInvoice.Preview;
            invoiceFromDb.SumWithoutDdS = givenFinanceInvoice.SumWithoutDdS;
            invoiceFromDb.SumWithDds = givenFinanceInvoice.SumWithDds;
            invoiceFromDb.IsVisible = givenFinanceInvoice.IsVisible;

            this.Data.SaveChanges();

            return givenFinanceInvoice;
        }