Ejemplo n.º 1
0
 public ActionResult AirbnbImport()
 {
     if (!AuthorizationProvider.IsDataImporter())
     {
         return(Forbidden());
     }
     return(View(new AirbnbImportFormModel()));
 }
Ejemplo n.º 2
0
 public ActionResult AirbnbImportForm()
 {
     if (!AuthorizationProvider.IsDataImporter())
     {
         return(Forbidden());
     }
     return(PartialView("_AirbnbImportPartial", new AirbnbImportFormModel()));
 }
Ejemplo n.º 3
0
 public ActionResult AirbnbImportLog()
 {
     if (!AuthorizationProvider.IsDataImporter())
     {
         return(Forbidden());
     }
     return(View());
 }
Ejemplo n.º 4
0
 public ActionResult ActionDashboard()
 {
     if (!AuthorizationProvider.IsDataImporter())
     {
         return(RedirectToAction("Login", "Account", "/"));
     }
     else
     {
         return(View());
     }
 }
Ejemplo n.º 5
0
        public ActionResult AirbnbStatistics()
        {
            if (!AuthorizationProvider.IsDataImporter())
            {
                return(Forbidden());
            }

            var provider = new AirbnbImportProvider(_dbContext);
            var model    = provider.GetImportStatistics();

            return(View(model));
        }
Ejemplo n.º 6
0
        public ActionResult NonAirbnb()
        {
            if (!AuthorizationProvider.IsDataImporter())
            {
                return(Forbidden());
            }
            var model = new ImportViewModel()
            {
                ImportDate = DateTime.Now
            };

            return(View(model));
        }
Ejemplo n.º 7
0
        public JsonResult BackFillStatements(DateTime month)
        {
            if (!AuthorizationProvider.IsDataImporter())
            {
                return(Forbidden());
            }

            try
            {
                var statementProvider = new OwnerStatementProvider(_dbContext);
                var propertyProvider  = new PropertyProvider(_dbContext);
                var properties        = propertyProvider.All();
                foreach (CPL property in properties)
                {
                    if (property.PropertyStatus != "Dead")
                    {
                        try
                        {
                            // create/update owner statement record
                            var model = statementProvider.GetOwnerStatement(month, property.PropertyCode);
                            model.PropertyName = model.PropertyName.Split(new char[] { '|' }, StringSplitOptions.RemoveEmptyEntries)[0].Trim();
                            var entity = statementProvider.Retrieve(model);
                            if (entity != null)
                            {
                                statementProvider.MapData(model, ref entity);
                                statementProvider.Update(entity.OwnerStatementId, entity);
                            }
                            else
                            {
                                entity = new OwnerStatement();
                                statementProvider.MapData(model, ref entity);
                                statementProvider.Create(entity);
                            }
                            statementProvider.Commit();
                        }
                        catch (Exception ex)
                        {
                            return(Json(ex.Message, JsonRequestBehavior.AllowGet));
                        }
                    }
                }
                return(Json("success-Statement", JsonRequestBehavior.AllowGet));
            }
            catch (Exception ex)
            {
                return(Json(ex.Message, JsonRequestBehavior.AllowGet));
            }
        }
Ejemplo n.º 8
0
        public JsonResult BackFillOwnerSummaries(DateTime month)
        {
            if (!AuthorizationProvider.IsDataImporter())
            {
                return(Forbidden());
            }

            try
            {
                var summaryProvider = new OwnerStatementProvider(_dbContext);
                var paymentProvider = new OwnerPaymentProvider(_dbContext);
                var payoutMethods   = paymentProvider.All();
                foreach (PayoutMethod method in payoutMethods)
                {
                    if (method.PayoutMethodName != null)
                    {
                        try
                        {
                            var summary = summaryProvider.GetOwnerSummary(month, method.PayoutMethodName, true);
                            var model   = new OwnerStatement();
                            summaryProvider.MapData(summary.ItemTotal, ref model, month, method.PayoutMethodName);

                            var entity = summaryProvider.Retrieve(model);
                            if (entity != null)
                            {
                                model.OwnerStatementId = entity.OwnerStatementId;
                                summaryProvider.Update(model.OwnerStatementId, model);
                            }
                            else
                            {
                                summaryProvider.Create(model);
                            }
                            summaryProvider.Commit();
                        }
                        catch (Exception ex)
                        {
                            return(Json(ex.Message, JsonRequestBehavior.AllowGet));
                        }
                    }
                }
                return(Json("success-Summary", JsonRequestBehavior.AllowGet));
            }
            catch (Exception ex)
            {
                return(Json(ex.Message, JsonRequestBehavior.AllowGet));
            }
        }
Ejemplo n.º 9
0
        public ActionResult ImportNonAirbnb(ImportViewModel form, HttpPostedFileBase attachedImportFile)
        {
            if (!AuthorizationProvider.IsDataImporter())
            {
                return(Forbidden());
            }

            try
            {
                // speed up bulk insertion
                _dbContext.Configuration.AutoDetectChangesEnabled = false;
                _dbContext.Configuration.ValidateOnSaveEnabled    = false;

                int errorCount = 0;
                if (attachedImportFile != null)
                {
                    switch (form.FileType)
                    {
                    case ImportFileType.Expenses:
                        bool newVersion = attachedImportFile.FileName.IndexOf("v3") > 0 || attachedImportFile.FileName.IndexOf("v4") > 0;
                        errorCount = ImportExpenses(attachedImportFile.InputStream, form.ImportDate, newVersion);
                        break;

                    case ImportFileType.OffAibnb:
                        errorCount = ImportOffAirbnbExcel(attachedImportFile.InputStream);
                        break;

                    case ImportFileType.PropertyFee:
                        errorCount = ImportPropertyFee(attachedImportFile.InputStream);
                        break;

                    case ImportFileType.BackfillTransaction:
                        errorCount = ImportBackfillTransactions(attachedImportFile.InputStream, attachedImportFile.FileName, form.ImportDate);
                        break;

                    case ImportFileType.Balance:
                        errorCount = ImportBalanceSweep(attachedImportFile.InputStream, form.ImportDate);
                        break;
                    }
                }
                return(Json(errorCount.ToString(), JsonRequestBehavior.AllowGet));
            }
            catch
            {
                return(Json("-1", JsonRequestBehavior.AllowGet));
            }
        }
Ejemplo n.º 10
0
        public ActionResult ImportAirbnb(AirbnbImportFormModel form)
        {
            if (!AuthorizationProvider.IsDataImporter())
            {
                return(Forbidden());
            }

            try
            {
                List <ImportFile>  completedTransactionFiles = JsonConvert.DeserializeObject <List <ImportFile> >(form.CompletedTransactionFiles);
                List <ImportFile>  futureTransactionFiles    = JsonConvert.DeserializeObject <List <ImportFile> >(form.FutureTransactionFiles);
                List <ImportFile>  grossTransactionFiles     = JsonConvert.DeserializeObject <List <ImportFile> >(form.GrossTransactionFiles);
                FtpTransactionType FileTransactionType       = form.TransactionFileType;

                ProcessResult result = new ProcessResult();
                if (FileTransactionType == FtpTransactionType.Completed)
                {
                    result = ImportAirbnbTrasactions(completedTransactionFiles, form.ReportDate, FileTransactionType);
                }
                else if (FileTransactionType == FtpTransactionType.Future)
                {
                    result = ImportAirbnbTrasactions(futureTransactionFiles, form.ReportDate, FileTransactionType);
                }
                else if (FileTransactionType == FtpTransactionType.Gross)
                {
                    result = ImportAirbnbTrasactions(grossTransactionFiles, form.ReportDate, FileTransactionType);
                }
                else if (FileTransactionType == FtpTransactionType.LogMissingTransactions)
                {
                    var logDate = new DateTime(2017, 12, 30);
                    result = LogMissingAirbnbTrasactions(completedTransactionFiles, logDate, FileTransactionType);
                }

                return(Json(result, JsonRequestBehavior.AllowGet));
            }
            catch (Exception ex)
            {
                ProcessResult result = new ProcessResult();
                result.Count   = -1;
                result.Message = ex.Message;
                return(Json(-1, JsonRequestBehavior.AllowGet));
            }
        }
Ejemplo n.º 11
0
        public JsonResult RetrieveImportLog()
        {
            if (!AuthorizationProvider.IsDataImporter())
            {
                return(Forbidden());
            }

            try
            {
                var provider = new AirbnbImportProvider(_dbContext);
                var model    = provider.RetrieveImportLog();
                return(Json(model, JsonRequestBehavior.AllowGet));
            }
            catch
            {
                Response.StatusCode = (int)System.Net.HttpStatusCode.InternalServerError;
                return(Json(new OwnerStatementViewModel(), JsonRequestBehavior.AllowGet));
            }
        }