Пример #1
0
        /// <summary>
        /// return the time activity from sql
        /// </summary>
        /// <param name="timeActivitydto"></param>
        /// <returns></returns>
        private List <TimeActivityFill> GetTimeActivityFromDb(TimeActivitydto timeActivitydto)
        {
            List <TimeActivityFill> fillList = new List <TimeActivityFill>();

            using (SqlConnection sqlConnection = new SqlConnection(timeActivitydto.Syncdto.ConnectionString))
            {
                string     oString = "Select * from TimeActivity";
                SqlCommand oCmd    = new SqlCommand(oString, sqlConnection);
                sqlConnection.Open();
                using (SqlDataReader oReader = oCmd.ExecuteReader())
                {
                    while (oReader.Read())
                    {
                        TimeActivityFill timeActivityFill = new TimeActivityFill();
                        timeActivityFill.Employee = oReader["Employee"].ToString();
                        timeActivityFill.Customer = oReader["Customer"].ToString();
                        timeActivityFill.Item     = oReader["Item"].ToString();
                        timeActivityFill.Date     = oReader["Date"].ToString();
                        timeActivityFill.Hours    = oReader["Hours"].ToString();
                        timeActivityFill.QboId    = oReader["QboId"].ToString();
                        fillList.Add(timeActivityFill);
                    }
                    sqlConnection.Close();
                }
            }
            return(fillList);
        }
 /// <summary>
 /// Retrieve the JSON object to be passed to client.
 /// </summary>
 /// <param name="timeActivity"></param>
 /// <param name="timeActivityRepository"></param>
 /// <returns></returns>
 private JsonResult GetJsonObject(TimeActivitydto timeActivity, TimeActivityRepository timeActivityRepository)
 {
     try
     {
         var    employeeObj = ReturnListItem(timeActivity, "emp") as Employee;
         var    CustomerObj = ReturnListItem(timeActivity, "cust") as Customer;
         var    ItemObj     = ReturnListItem(timeActivity, "item") as Item;
         var    dateObj     = timeActivity.TxnDate.ToShortDateString();
         var    hoursObj    = timeActivity.Hours;
         var    qboId       = timeActivity.QboId;
         object data        = new {
             ControlId    = timeActivity.Id,
             RealmId      = timeActivity.oAuthTokens.Realmid,
             AlertMessage = timeActivity.AlertMessage,
             Employee     = string.Format("{0} {1}", employeeObj.GivenName, employeeObj.FamilyName),
             Customer     = string.Format("{0} {1}", CustomerObj.GivenName, CustomerObj.FamilyName),
             Item         = ItemObj.Name,
             Date         = dateObj,
             Hours        = hoursObj,
             QboId        = qboId
         };
         timeActivityRepository.SavetoDb(timeActivity.Syncdto.ConnectionString, timeActivity);
         return(Json(data, JsonRequestBehavior.AllowGet));
     }
     catch (Exception ex)
     {
         return(null);
     }
 }
Пример #3
0
        /// <summary>
        /// Load the drop down list
        /// </summary>
        /// <param name="timeActivitydto"></param>
        /// <returns></returns>
        internal TimeActivitydto LoaddropdownList(TimeActivitydto timeActivitydto)
        {
            timeActivitydto.Employee = timeActivitydto.EmployeeList
                                       .Select(x =>
                                               new SelectListItem
            {
                Value = x.Id,
                Text  = x.GivenName
            });

            timeActivitydto.Employee = new SelectList(timeActivitydto.Employee, "Value", "Text");
            timeActivitydto.Customer = timeActivitydto.CustomerList
                                       .Select(x =>
                                               new SelectListItem
            {
                Value = x.Id,
                Text  = x.GivenName
            });

            timeActivitydto.Customer = new SelectList(timeActivitydto.Customer, "Value", "Text");
            timeActivitydto.Item     = timeActivitydto.ItemList
                                       .Select(x =>
                                               new SelectListItem
            {
                Value = x.Id,
                Text  = x.Name
            });

            timeActivitydto.Item     = new SelectList(timeActivitydto.Item, "Value", "Text");
            timeActivitydto.FillTime = GetTimeActivityFromDb(timeActivitydto);
            return(timeActivitydto);
        }
        /// <summary>
        /// Save the objects to SQL
        /// </summary>
        /// <param name="conString"></param>
        /// <param name="timeActivity"></param>
        internal void SavetoDb(string conString, TimeActivitydto timeActivity)
        {
            var    employeeObj = ReturnListItem(timeActivity, "emp") as Employee;
            var    CustomerObj = ReturnListItem(timeActivity, "cust") as Customer;
            var    ItemObj     = ReturnListItem(timeActivity, "item") as Item;
            var    dateObj     = timeActivity.TxnDate;
            var    hoursObj    = timeActivity.Hours;
            var    qboId       = timeActivity.QboId;
            string query       = "INSERT INTO [TimeActivity] ([RealmId], [Employee], [Customer], [Item], [Date],  [Hours], [QboId])";

            query += " VALUES (@RealmId, @Employee, @Customer, @Item, @Date, @Hours, @QboId)";
            using (SqlCommand myCommand = new SqlCommand(query, new SqlConnection(conString)))
            {
                myCommand.Connection.Open();
                myCommand.Parameters.AddWithValue("@RealmId", timeActivity.CompanyId);
                myCommand.Parameters.AddWithValue("@Employee", string.Format("{0} {1}", employeeObj.GivenName, employeeObj.FamilyName));
                myCommand.Parameters.AddWithValue("@Customer", string.Format("{0} {1}", CustomerObj.GivenName, CustomerObj.FamilyName));
                myCommand.Parameters.AddWithValue("@Item", ItemObj.Name);
                myCommand.Parameters.AddWithValue("@Date", dateObj);
                myCommand.Parameters.AddWithValue("@Hours", hoursObj);
                myCommand.Parameters.AddWithValue("@QboId", qboId);
                myCommand.ExecuteNonQuery();
                myCommand.Connection.Close();
            }
        }
Пример #5
0
        /// <summary>
        /// Push the time activity to QBO
        /// </summary>
        /// <param name="timeActivitydto"></param>
        /// <returns></returns>
        internal TimeActivitydto Save(TimeActivitydto timeActivitydto)
        {
            try
            {
                TimeActivity timeActivity = new TimeActivity();
                timeActivity.TxnDate = timeActivitydto.Date;
                SelectListItem selectedCustom = GetSelectedItem(timeActivitydto.Customer, timeActivitydto.CustomerSelected);
                timeActivity.CustomerRef = new ReferenceType
                {
                    Value = selectedCustom.Value,
                };
                SelectListItem selectedItem = GetSelectedItem(timeActivitydto.Item, timeActivitydto.ItemSelected);
                timeActivity.ItemRef = new ReferenceType()
                {
                    Value = selectedItem.Value
                };
                SelectListItem selectedEmp = GetSelectedItem(timeActivitydto.Employee, timeActivitydto.EmployeeSelected);
                timeActivity.NameOf          = TimeActivityTypeEnum.Employee;
                timeActivity.NameOfSpecified = true;
                timeActivity.AnyIntuitObject = new ReferenceType()
                {
                    Value = selectedEmp.Value
                };
                timeActivity.ItemElementName = ItemChoiceType5.EmployeeRef;

                timeActivity.BillableStatus          = BillableStatusEnum.NotBillable;
                timeActivity.BillableStatusSpecified = true;
                timeActivity.Taxable          = false;
                timeActivity.TaxableSpecified = true;
                //Time
                timeActivity.HourlyRate          = new Decimal(0.00);
                timeActivity.HourlyRateSpecified = true;
                timeActivity.Hours = 10;

                timeActivity.HoursSpecified   = true;
                timeActivity.Minutes          = 0;
                timeActivity.Description      = timeActivitydto.Description;
                timeActivity.MinutesSpecified = true;
                timeActivity                 = dataService.Add <TimeActivity>(timeActivity);
                timeActivitydto.QboId        = timeActivity.Id;
                timeActivitydto.Hours        = timeActivity.Hours;
                timeActivitydto.TxnDate      = timeActivity.TxnDate;
                timeActivitydto.AlertMessage = string.Format("Time Activity successfully created and pushed to QBO (QBO ID = {0})", timeActivity.Id);
                return(timeActivitydto);
            }
            catch (Intuit.Ipp.Exception.FaultException ex)
            {
                throw ex;
            }
            catch (Intuit.Ipp.Exception.InvalidTokenException ex)
            {
                throw ex;
            }
            catch (Intuit.Ipp.Exception.SdkException ex)
            {
                throw ex;
            }
        }
        /// <summary>
        /// Save the object to dictionary
        /// </summary>
        /// <param name="controller"></param>
        /// <param name="timeActivity"></param>
        /// <returns></returns>
        internal TimeActivitydto Save(object controller, TimeActivitydto timeActivity)
        {
            timeController = controller as Controller;
            Random random = new Random();

            timeActivity.Id = random.Next(1, 100);
            timeActivityRepository.Add(timeActivity.Id, timeActivity);
            timeController.TempData["TimeActivity"] = timeActivityRepository;
            timeController.TempData.Keep();
            return(timeActivity);
        }
 public JsonResult Save(Int64 id, string empSelect, string cusSelect, string itemSelect, string description)
 {
     timeActivity                  = id > 0 ? new TimeActivityRepository().Get(this, id) : new TimeActivitydto();
     timeActivityService           = new TimeActivityService(timeActivity);
     timeActivity.EmployeeSelected = empSelect;
     timeActivity.CustomerSelected = cusSelect;
     timeActivity.ItemSelected     = itemSelect;
     timeActivity.Description      = description;
     timeActivity                  = timeActivityService.Save(timeActivity);
     timeActivityRepository        = new TimeActivityRepository();
     timeActivity                  = timeActivityRepository.Save(this, timeActivity);
     return(GetJsonObject(timeActivity, timeActivityRepository));
 }
        /// <summary>
        /// retueve the list item based on the entity type
        /// </summary>
        /// <param name="timeActivitydto"></param>
        /// <param name="caseString"></param>
        /// <returns></returns>
        private object ReturnListItem(TimeActivitydto timeActivitydto, string caseString)
        {
            switch (caseString)
            {
            case "emp":
                return(timeActivitydto.EmployeeList.Where(x => x.Id == timeActivitydto.EmployeeSelected).First());

            case "cust":
                return(timeActivitydto.CustomerList.Where(x => x.Id == timeActivitydto.CustomerSelected).First());

            case "item":
                return(timeActivitydto.ItemList.Where(x => x.Id == timeActivitydto.ItemSelected).First());
            }
            return(null);
        }
        public ActionResult Load(Int64 id)
        {
            Syncdto syncDetails = id > 0 ? new SyncRepository().Get(this, id) : new Syncdto();

            timeActivity.oAuthTokens  = syncDetails.OauthToken;
            timeActivity.Syncdto      = syncDetails;
            timeActivity.EmployeeList = syncDetails.EmployeeList;
            timeActivity.CustomerList = syncDetails.CustomerList;
            timeActivity.ItemList     = syncDetails.ItemList;
            timeActivityService       = new TimeActivityService(timeActivity);
            timeActivity           = timeActivityService.LoaddropdownList(timeActivity);
            timeActivity.CompanyId = timeActivity.oAuthTokens.Realmid;
            timeActivityRepository = new TimeActivityRepository();
            timeActivityRepository.Save(this, timeActivity);
            multiplemodels = new Multiplemodels();
            multiplemodels.TimeActivityModel = timeActivity;
            multiplemodels.SyncObjectsModel  = syncDetails;
            multiplemodels.IsConnected       = syncDetails.OauthToken.IsConnected;
            multiplemodels.IsReadytoInvoice  = true;
            return(View("TimeActivity", multiplemodels));
        }
Пример #10
0
        public ActionResult Load(Int64 id)
        {
            TimeActivitydto timeActivitydto = id > 0 ? new TimeActivityRepository().Get(this, id) : new TimeActivitydto();

            invoicedto.oAuthTokens      = timeActivitydto.oAuthTokens;
            invoicedto.CustomerList     = timeActivitydto.CustomerList;
            invoicedto.CompanyId        = invoicedto.oAuthTokens.Realmid;
            invoicedto.ConnectionString = timeActivitydto.Syncdto.ConnectionString;
            invoicedto.TimeActivityDto  = timeActivitydto;
            invoiceService    = new InvoiceService(invoicedto);
            invoicedto        = invoiceService.LoadPending(invoicedto);
            invoicedto        = invoiceService.LoadInvoiced(invoicedto);
            invoiceRepository = new InvoiceRepository();
            invoicedto        = invoiceRepository.Save(this, invoicedto);
            multiplemodels    = new Multiplemodels();
            multiplemodels.TimeActivityModel = timeActivitydto;
            multiplemodels.InvoiceModel      = invoicedto;
            multiplemodels.SyncObjectsModel  = invoicedto.TimeActivityDto.Syncdto;
            multiplemodels.IsConnected       = timeActivitydto.oAuthTokens.IsConnected;
            multiplemodels.IsReadyTimeentry  = true;
            multiplemodels.IsReadytoInvoice  = true;
            multiplemodels.IsReadySync       = false;
            return(View("Invoices", multiplemodels));
        }
Пример #11
0
 /// <summary>
 /// Fire up service context and repository
 /// </summary>
 /// <param name="timeActivity"></param>
 public TimeActivityService(TimeActivitydto timeActivity)
 {
     dataserviceFactory     = new DataserviceFactory(timeActivity.oAuthTokens);
     dataService            = dataserviceFactory.getDataService();
     timeActivityRepository = new TimeActivityRepository();
 }