/// <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(); } }
/// <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> /// 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 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; }
/// <summary> /// Retrieve based on 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 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); }
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); }
/// <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; } }
/// <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(); }
/// <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; } }