Exemple #1
0
 /// <summary>
 /// Loads the UI.
 /// </summary>
 private void LoadUI()
 {
     InitializeUI();
     if (this.DisplayMode == LinkDisplayMode.Add)
     {
         popupAttachLinks.Title   = "Add new Hyperlink";
         btnOK.Text               = "Ok";
         imgbtnRemoveLink.Visible = false;
         txtHyperlink.Text        = "";
         txtName.Text             = "";
         cancelButton.Visible     = true;
     }
     else
     {
         cancelButton.Visible     = false;
         btnOK.Text               = "Done";
         popupAttachLinks.Title   = "Edit/ Delete Hyperlink";
         imgbtnRemoveLink.Visible = true;
         UtilityBL     utilityBL = new UtilityBL(DataContext);
         DocumentMedia media     = utilityBL.GetDocumentMedia(DocumentMediaId);
         if (media != null)
         {
             txtHyperlink.Text = media.Description;
             txtName.Text      = media.Name;
         }
         else
         {
             linkAlreadyDeleted.ShowPopup();
         }
     }
 }
Exemple #2
0
        private User CommitToItem(Data.Models.User item)
        {
            var user = _db.Users.FirstOrDefault(u => u.UserId == item.UserId);

            if (user != null)
            {
                item = user;
            }
            item.EmailId     = txtEmail.Text.Trim();
            item.Name        = txtName.Text.Trim();
            item.Pwd         = UtilityBL.Encrypt(txtPassword.Text, true);
            item.RoleId      = Convert.ToInt32(ddlRoles.SelectedValue);
            item.Role        = _db.Roles.Find(Convert.ToInt32(ddlRoles.SelectedValue));
            item.ReportingId = Convert.ToInt32(ddlReporting.SelectedValue);
            item.User2       = _db.Users.Find(Convert.ToInt32(ddlReporting.SelectedValue));
            item.Mobile      = txtPhone.Text.Trim();
            item.Active      = true;

            item.Cities.Clear();

            var cityList = GetSelectedCities();

            foreach (var city in cityList)
            {
                item.Cities.Add(city);
            }
            item.PartnerCategorys.Clear();
            var category = GetSelectedPartnerCategory();

            foreach (var partner in category)
            {
                item.PartnerCategorys.Add(partner);
            }
            return(item);
        }
Exemple #3
0
 /// <summary>
 /// Initializes a new instance of the <see cref="HomeController"/> class.
 /// </summary>
 public HomeController()
 {
     _userBl               = new UserBL();
     _opportunityBl        = new OpportunityBL();
     _quoteBl              = new QuoteBL();
     _clientLoginBL        = new ClientLoginBL();
     _clientDefinedFieldBL = new ClientDefinedFieldBL();
     _utilityBL            = new UtilityBL();
 }
        public MobileImageDetails GetImageDetailsForItem(MobileItemImageRequestDetails mobileItemImageRequestDetails)
        {
            string             message            = string.Empty;
            string             status             = string.Empty;
            bool               isValidVersion     = true;
            MobileImageDetails mobileImageDetails = new MobileImageDetails();

            try
            {
                using (StageBitzDB dataContext = new StageBitzDB())
                {
                    isValidVersion = Helper.IsValidAppVersion(mobileItemImageRequestDetails.Version, out status);
                    if (isValidVersion)
                    {
                        //Check the user security
                        int userId = int.Parse(Utils.DecryptStringAES(mobileItemImageRequestDetails.Token));

                        if (Utils.CanAccessInventory(mobileItemImageRequestDetails.CompanyId, userId))
                        {
                            UtilityBL utilityBL = new UtilityBL(dataContext);

                            var dm = utilityBL.GetDocumentMedia(mobileItemImageRequestDetails.DocumentMediaId);

                            if (dm != null)
                            {
                                mobileImageDetails.DocumentMediaId = dm.DocumentMediaId;
                                mobileImageDetails.Image           = Convert.ToBase64String(dm.Thumbnail);
                                mobileImageDetails.Status          = "OK";
                            }
                            else
                            {
                                mobileImageDetails.Status  = "ERROR";
                                mobileImageDetails.Message = "Oops! Unkown error. Sorry...";
                            }
                        }
                        else
                        {
                            mobileImageDetails.Status  = "NOTOK";
                            mobileImageDetails.Message = "Check settings with Company Administrator.";
                        }
                    }
                    else
                    {
                        mobileImageDetails.Status  = "NOTOK";
                        mobileImageDetails.Message = "Please update App.";
                    }
                }
            }
            catch (Exception ex)
            {
                AgentErrorLog.HandleException(ex);
                mobileImageDetails.Status  = "ERROR";
                mobileImageDetails.Message = "Oops! Unkown error. Sorry...";
            }
            return(mobileImageDetails);
        }
Exemple #5
0
 /// <summary>
 /// Saves the document media.
 /// </summary>
 /// <param name="filePrefix">The file prefix.</param>
 /// <param name="documentMediaId">The document media identifier.</param>
 /// <param name="attachmentPath">The attachment path.</param>
 /// <returns></returns>
 private async Task SaveDocumentMedia(string filePrefix, int documentMediaId, string attachmentPath)
 {
     using (StageBitzDB dataContext = new StageBitzDB())
     {
         UtilityBL          utilityBL     = new UtilityBL(dataContext);
         Data.DocumentMedia documentMedia = utilityBL.GetDocumentMedia(documentMediaId);
         if (documentMedia != null)
         {
             string documentMediaFileName = string.Format("{0} {1} - {2}.{3}", filePrefix, documentMedia.DocumentMediaId, Utils.Ellipsize(documentMedia.Name, 50), documentMedia.FileExtension);
             await FileHandler.SaveFileToDisk(documentMedia.DocumentMediaContent, FileHandler.GetSafeFileName(documentMediaFileName), attachmentPath);
         }
     }
 }
Exemple #6
0
        /// <summary>
        /// Handles the Click event of the imgbtnRemoveLink control.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="ImageClickEventArgs"/> instance containing the event data.</param>
        protected void imgbtnRemoveLink_Click(object sender, ImageClickEventArgs e)
        {
            UtilityBL utilityBL            = new UtilityBL(DataContext);
            bool      isDocumentMediaExist = utilityBL.IsDocumentMediaExist(DocumentMediaId);

            if (!isDocumentMediaExist)
            {
                linkAlreadyDeleted.ShowPopup();
            }
            else
            {
                popupLinkRemoveConfirmation.ShowPopup();
            }
        }
Exemple #7
0
        /// <summary>
        /// Handles the Click event of the btnRemoveConfirm control.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param>
        protected void btnRemoveConfirm_Click(object sender, EventArgs e)
        {
            //logic to remove link
            UtilityBL     utilityBL = new UtilityBL(DataContext);
            DocumentMedia media     = utilityBL.RemoveHyperlinkDocumentMedia(DocumentMediaId);

            if (media != null && (RelatedTableName == "Project" || RelatedTableName == "ItemBrief"))
            {
                this.GetBL <NotificationBL>().GenerateNotificationsForMedia(media, UserID, ProjectId, NotificationBL.OperationMode.Delete);
            }

            UpdateParent();
            popupAttachLinks.HidePopup();
            popupLinkRemoveConfirmation.HidePopup();
        }
Exemple #8
0
        /// <summary>
        /// Handles the Click event of the btnOK control.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param>
        protected void btnOK_Click(object sender, EventArgs e)//If you are generting notifications, you should genetate them based on RelatedTableName
        {
            if (Page.IsValid)
            {
                string     name       = txtName.Text;
                UriBuilder uriBuilder = new UriBuilder(txtHyperlink.Text);
                string     url        = new UriBuilder(txtHyperlink.Text).Uri.AbsoluteUri;
                //if the uploaded url is an url to a file we change the url format to UNC
                if (uriBuilder.Uri.Scheme.Equals("file"))
                {
                    url = url.Insert(5, "///");
                }
                UtilityBL utilityBL = new UtilityBL(DataContext);

                if (DisplayMode == LinkDisplayMode.Add)
                {
                    int           createdBy = UserID;
                    DocumentMedia media     = utilityBL.InsertHyperlinkToDocumentMedia(name, RelatedTableName, RelatedId, url, createdBy, Utils.Today);
                    if (media != null && (RelatedTableName == "Project" || RelatedTableName == "ItemBrief"))
                    {
                        this.GetBL <NotificationBL>().GenerateNotificationsForMedia(media, UserID, ProjectId, NotificationBL.OperationMode.Add);
                    }
                    UpdateParent();
                }
                else
                {
                    int           lastUpdatedBy   = UserID;
                    DateTime      lastUpdatedDate = DateTime.Now;
                    DocumentMedia media           = utilityBL.GetDocumentMedia(DocumentMediaId);
                    if (media == null)
                    {
                        linkAlreadyDeleted.ShowPopup();
                    }
                    else
                    {
                        if ((media.Name != name || media.Description != url) && (RelatedTableName == "Project" || RelatedTableName == "ItemBrief"))
                        {
                            this.GetBL <NotificationBL>().GenerateNotificationsForMedia(media, UserID, ProjectId, NotificationBL.OperationMode.Edit, name, url);
                        }
                        utilityBL.UpdateHyperlinkDocumentMedia(media, name, url, lastUpdatedBy, lastUpdatedDate);
                        UpdateParent();
                    }
                }

                popupAttachLinks.HidePopup();
            }
        }
Exemple #9
0
 public IDictionary <int, string> GetCheckpointState()
 {
     return(UtilityBL.GetCheckpointState());
 }
        protected void InsertButton_Click(object sender, EventArgs e)
        {
            var item = new HPPortal.Data.Models.ActionForTargetedGoal();

            if (PlanId > 0)
            {
                item = _db.ActionForTargetedGoals.Include(p => p.Users).FirstOrDefault(p => p.ActionId == PlanId);
            }

            var exisitingGoalName = item.GoalName;

            if (Session["User"] == null)
            {
                Response.Redirect("/Logon.aspx");
            }

            var user = Session["User"] as User;

            if (ModelState.IsValid)
            {
                CommitToItem(item);
                var data = _db.ActionForTargetedGoals;
                if (PlanId > 0)
                {
                    item.ModifiedDate = DateTime.Now;
                    if (user != null)
                    {
                        item.ModifiedUser = user.UserId;
                    }

                    _db.Entry(item).State = EntityState.Modified;


                    var goals = data.Where(d => d.GoalName == exisitingGoalName && d.ActionId != item.ActionId);
                    if (goals != null)
                    {
                        foreach (var goal in goals)
                        {
                            goal.GoalName        = item.GoalName;
                            goal.PreviousQuarter = item.PreviousQuarter;
                            goal.QuarterPlan     = item.QuarterPlan;

                            goal.ModifiedDate = DateTime.Now;
                            if (user != null)
                            {
                                goal.ModifiedUser = user.UserId;
                            }

                            _db.Entry(goal).State = EntityState.Modified;
                        }
                    }
                    _db.SaveChanges();
                }
                else
                {
                    if (data != null && data.ToList().Exists(i => i.GoalName == item.GoalName))
                    {
                        UtilityBL.Alert("Goal already exists.", this);
                        gridAction.DataBind();
                        return;
                    }
                    // Save changes
                    item.CreatedDate = DateTime.Now;
                    if (user != null)
                    {
                        item.CreatedUser = user.UserId;
                    }

                    _db.ActionForTargetedGoals.Add(item);
                    _db.SaveChanges();
                }

                // send mail to assigned user
                var assignedUsers = item.Users;
                if (assignedUsers != null)
                {
                    var partner = _db.Partners.Find(item.PartnerId);
                    foreach (var assignedUser in assignedUsers)
                    {
                        var sendEmail = assignedUser.EmailNotification != null ? (bool)assignedUser.EmailNotification : true;
                        if (sendEmail)
                        {
                            string emailAddress = assignedUser.EmailId;
                            string subject      = @"HPJB Portal Targeted goal assigned.";
                            string message      = Utility.MailFormat.GetMessage(@"Targeted goal", assignedUser.Name, partner.PartnerName, item.QuarterYear);

                            var client = new MailService.MailServiceSoapClient();
                            client.SendMailMessagesAsync(ConfigurationManager.AppSettings["From"], emailAddress,
                                                         "", "", subject, message, "", "");

                            Utility.MailFormat.SendSMS(assignedUser.Mobile, assignedUser.Name, partner.PartnerName);
                        }
                    }
                }

                string path = "TargetedGoals/ActionForTargetedGoals";
                Response.Redirect(string.Format("/{0}?pid={1}&qtr={2}", path, PartnerId, Quater));
            }
        }
        public bool SaveBuyerRequestMobile(string BuyerEmail, string BuyerCity,
           string BuyerPhone, string BuyerFirstName, string BuyerLastName, string BuyerComments,
           string IpAddress, string Sellerphone, string Sellerprice, string Carid,
            string sYear, string Make, string Model, string price, string RequestType)
        {
            string spNameString = string.Empty;
            bool bsucess = false;
            //Setting Connection
            //Global.INSTANCE_NAME = strCurrentConn;

            IDataReader ModelsInfoDataReader = null;

            //Connect to the database
            Database dbDatabase = DatabaseFactory.CreateDatabase(Global.INSTANCE_NAME );

            //Assign stored procedure name

            spNameString = "[USP_Save_BuyerRequest]";
            DbCommand dbCommand = null;

            try
            {
                //Set stored procedure to the command object
                dbCommand = dbDatabase.GetStoredProcCommand(spNameString);

                dbDatabase.AddInParameter(dbCommand, "@BuyerEmail", DbType.String, BuyerEmail);
                dbDatabase.AddInParameter(dbCommand, "@BuyerCity", DbType.String, BuyerCity);
                dbDatabase.AddInParameter(dbCommand, "@BuyerPhone", DbType.String, BuyerPhone);
                dbDatabase.AddInParameter(dbCommand, "@BuyerFirstName", DbType.String, BuyerFirstName);
                dbDatabase.AddInParameter(dbCommand, "@BuyerLastName", DbType.String, BuyerLastName);
                dbDatabase.AddInParameter(dbCommand, "@BuyerComments", DbType.String, BuyerComments);
                dbDatabase.AddInParameter(dbCommand, "@IpAddress", DbType.String, IpAddress);
                dbDatabase.AddInParameter(dbCommand, "@Sellerphone", DbType.String, Sellerphone);
                dbDatabase.AddInParameter(dbCommand, "@Sellerprice", DbType.String, Sellerprice);
                dbDatabase.AddInParameter(dbCommand, "@Carid", DbType.String, Carid);
                dbDatabase.AddInParameter(dbCommand, "@RequestType", DbType.String, RequestType);

                //Executing stored procedure
                dbDatabase.ExecuteNonQuery(dbCommand);

                string strMailFormat = string.Empty;

                StringBuilder sbQuery;
                string line;

                string SalesMailFile = System.Web.Hosting.HostingEnvironment.MapPath("~/MailTemplate/SellarRequest.txt");

                StreamReader objStreamReader;

                objStreamReader = File.OpenText(SalesMailFile);

                sbQuery = new StringBuilder();

                while ((line = objStreamReader.ReadLine()) != null)
                {
                    string strMail = string.Empty;

                    strMail = line + "<br />";

                    if (line.Contains("###SellarName###"))
                    {
                        if (strMail == "")
                        {
                            strMail = line.Replace("###SellarName###", BuyerFirstName);
                        }
                        else
                        {
                            strMail = strMail.Replace("###SellarName###", BuyerFirstName);
                        }
                    }

                    if (line.Contains("###Phone###"))
                    {
                        if (strMail == "")
                        {
                            strMail = line.Replace("###Phone###", BuyerPhone);
                        }
                        else
                        {
                            strMail = strMail.Replace("###Phone###", BuyerPhone);
                        }
                    }
                    if (line.Contains("###Email###"))
                    {
                        if (strMail == "")
                        {
                            strMail += line.Replace("###Email###", BuyerEmail );
                        }
                        else
                        {
                            strMail = strMail.Replace("###Email###", BuyerEmail);
                        }
                    }
                    if (line.Contains("###Year###"))
                    {
                        if (strMail == "")
                        {
                            strMail += line.Replace("###Year###", sYear );
                        }
                        else
                        {
                            strMail = strMail.Replace("###Year###", sYear);
                        }
                    }

                    if (line.Contains("###Make###"))
                    {
                        if (strMail == "")
                        {
                            strMail += line.Replace("###Make###", Make);
                        }
                        else
                        {
                            strMail = strMail.Replace("###Make###", Make);
                        }
                    }
                    if (line.Contains("###Model###"))
                    {
                        if (strMail == "")
                        {
                            strMail += line.Replace("###Model###", Model);
                        }
                        else
                        {
                            strMail = strMail.Replace("###Model###", Model);
                        }
                    }
                    if (line.Contains("###price###"))
                    {
                        if (strMail == "")
                        {
                            strMail += line.Replace("###price###", price);
                        }
                        else
                        {
                            strMail = strMail.Replace("###price###", price);
                        }
                    }
                    if (line.Contains("###Comments###"))
                    {
                        if (strMail == "")
                        {
                            strMail = line.Replace("###Comments###", BuyerComments);
                        }
                        else
                        {
                            strMail = strMail.Replace("###Comments###", BuyerComments);
                        }
                    }
                    if (line.Contains("###firstName###"))
                    {
                        if (strMail == "")
                        {
                            strMail = line.Replace("###firstName###", BuyerFirstName);
                        }
                        else
                        {
                            strMail = strMail.Replace("###firstName###", BuyerFirstName);
                        }
                    }
                    if (line.Contains("###lastName###"))
                    {
                        if (strMail == "")
                        {
                            strMail = line.Replace("###lastName###", BuyerLastName );
                        }
                        else
                        {
                            strMail = strMail.Replace("###lastName###", BuyerLastName);
                        }
                    }

                    if (line.Contains("###City###"))
                    {
                        if (strMail == "")
                        {
                            strMail = line.Replace("###City###", BuyerCity);
                        }
                        else
                        {
                            strMail = strMail.Replace("###City###", BuyerCity);
                        }
                    }

                    strMailFormat = strMailFormat + strMail;
                }
                UtilityBL objUtility = new UtilityBL();

                objUtility.SendMail("127.0.0.1","*****@*****.**",BuyerEmail,"Regarding Buyer request",  strMailFormat);

                bsucess = true;

            }
            catch (Exception ex)
            {
                bool rethrow = ExceptionPolicy.HandleException(ex, Global.EXCEPTION_POLICY);

                if (rethrow)
                    throw;
            }

            return bsucess;
        }
        public ItemResult SyncImage(MobileDocumentMedia mobileDocumentMedia)
        {
            ItemResult itemResult      = new ItemResult();
            string     message         = string.Empty;
            string     status          = string.Empty;
            bool       isValidVersion  = true;
            int        documentMediaId = 0;

            try
            {
                using (StageBitzDB dataContext = new StageBitzDB())
                {
                    if (mobileDocumentMedia != null)
                    {
                        isValidVersion = Helper.IsValidAppVersion(mobileDocumentMedia.Version, out status);
                        if (isValidVersion)
                        {
                            if (mobileDocumentMedia != null)
                            {
                                //Check if the Item is already being synced
                                if (dataContext.InventoryMobileDocumentMedias.Where(imdm => imdm.MobileDocumentMediaId == mobileDocumentMedia.MobileImageId && imdm.RelatedTable == mobileDocumentMedia.RelatedTable && imdm.RelatedId == mobileDocumentMedia.RelatedId).FirstOrDefault() == null)
                                {
                                    //Check if the Item is exist
                                    Data.Item item = dataContext.Items.Where(i => i.ItemId == mobileDocumentMedia.RelatedId).FirstOrDefault();

                                    if (item != null && item.IsActive)
                                    {
                                        int         userId      = int.Parse(Utils.DecryptStringAES(mobileDocumentMedia.Token));
                                        InventoryBL inventoryBL = new InventoryBL(dataContext);
                                        if (!inventoryBL.GetItemStatusInformationForUser(item, mobileDocumentMedia.CompanyId, userId).IsReadOnly)
                                        {
                                            //Images can be either deleted or added.
                                            if (mobileDocumentMedia.DocumentMediaId == 0)
                                            {
                                                DocumentMedia documentMedia = new DocumentMedia();
                                                documentMedia.DocumentMediaContent = Helper.LoadImage(mobileDocumentMedia.Image, false, mobileDocumentMedia.FileExtension);
                                                documentMedia.Thumbnail            = Helper.LoadImage(mobileDocumentMedia.Image, true, mobileDocumentMedia.FileExtension);
                                                documentMedia.RelatedId            = mobileDocumentMedia.RelatedId;
                                                documentMedia.RelatedTableName     = mobileDocumentMedia.RelatedTable;
                                                documentMedia.SortOrder            = inventoryBL.HasDefaultImageSet(mobileDocumentMedia.RelatedId, mobileDocumentMedia.RelatedTable) ? 0 : 1;
                                                documentMedia.IsImageFile          = true;
                                                documentMedia.FileExtension        = mobileDocumentMedia.FileExtension;
                                                documentMedia.Name        = mobileDocumentMedia.Name;
                                                documentMedia.CreatedBy   = documentMedia.LastUpdatedBy = userId;
                                                documentMedia.CreatedDate = documentMedia.LastUpdatedDate = Utils.Today;
                                                dataContext.DocumentMedias.AddObject(documentMedia);

                                                InventoryMobileDocumentMedia inventoryMobileDocumentMedia = new InventoryMobileDocumentMedia();
                                                inventoryMobileDocumentMedia.MobileDocumentMediaId = mobileDocumentMedia.MobileImageId;
                                                inventoryMobileDocumentMedia.DocumentMediaId       = documentMedia.DocumentMediaId;
                                                inventoryMobileDocumentMedia.RelatedTable          = mobileDocumentMedia.RelatedTable;
                                                inventoryMobileDocumentMedia.RelatedId             = mobileDocumentMedia.RelatedId;
                                                inventoryMobileDocumentMedia.CreatedBy             = userId;
                                                inventoryMobileDocumentMedia.CreatedDate           = inventoryMobileDocumentMedia.LastUpdateDate = Utils.Today;
                                                dataContext.InventoryMobileDocumentMedias.AddObject(inventoryMobileDocumentMedia);

                                                dataContext.SaveChanges();
                                                status          = "OK";
                                                documentMediaId = documentMedia.DocumentMediaId;
                                            }
                                            else
                                            {
                                                UtilityBL     utilityBL     = new UtilityBL(dataContext);
                                                DocumentMedia documentMedia = utilityBL.GetDocumentMedia(mobileDocumentMedia.DocumentMediaId);
                                                if (documentMedia != null)
                                                {
                                                    dataContext.DeleteDocumentMedia(mobileDocumentMedia.DocumentMediaId);
                                                    status = "OK";
                                                }
                                                else
                                                {
                                                    status  = "OK";
                                                    message = "Image no longer exists.";
                                                }
                                            }
                                        }
                                        else
                                        {
                                            status  = "NORIGHTS";
                                            message = "Check settings with Company Administrator.";
                                        }
                                    }
                                    else
                                    {
                                        status  = "ITEMDELETED";
                                        message = "Item no longer exists.";
                                    }
                                }
                                else
                                {
                                    status  = "EXIST";
                                    message = "Image already synced.";
                                }
                            }
                        }
                        else
                        {
                            status  = "INVALIDAPP";
                            message = "Please update App.";
                        }
                    }
                    else
                    {
                        status  = "ERROR";
                        message = "Oops! Unkown error. Sorry...";
                    }
                }
            }
            catch (Exception ex)
            {
                AgentErrorLog.HandleException(ex);
                status  = "ERROR";
                message = "Oops! Unkown error. Sorry...";
            }
            itemResult.Id       = documentMediaId;
            itemResult.MobileId = mobileDocumentMedia != null ? mobileDocumentMedia.MobileImageId : "0";
            itemResult.Status   = status;
            itemResult.Message  = message;
            return(itemResult);
        }
Exemple #13
0
        /// <summary>
        /// Runs the update CRM quotes.
        /// </summary>
        /// <param name="quoteDto">The quote dto.</param>
        /// <returns></returns>
        public Response RunUpdateCRMQuotes(QuoteDto quoteDto)
        {
            // Initialise variables
            Response response = Authenticate(quoteDto.LoginInfo);

            if (response.Errors.Count > 0)
            {
                return(response);
            }

            var quotesToUpdate = quoteDto.QuoteTable;
            var xRefDef        = quoteDto.CRMXrefDefinition;

            CreateSqlAndMapper(xRefDef);

            try
            {
                var quoteBl   = new QuoteBL();
                var utilityBl = new UtilityBL();

                // Create a list of opportunities
                // mapping the values of the opportunity table with the ones on the Salesforce Opportunity object
                var recordsSdaUpdate = new List <QuoteDto>();
                var recordsSdaAdd    = new List <QuoteDto>();
                int crmClientId      = -1;

                foreach (DataRow row in quotesToUpdate.Rows)
                {
                    int clientID = -1;
                    if (row["ClientID"] != DBNull.Value)
                    {
                        int.TryParse(row["ClientID"].ToString(), out clientID);
                        crmClientId = clientID;
                    }
                    else
                    {
                        response.Errors.Add("Invalid Client Id.");
                    }

                    var strQuoteId = string.Empty;
                    if (row["QuoteID"] != DBNull.Value)
                    {
                        strQuoteId = row["QuoteID"].ToString();
                    }
                    else
                    {
                        response.Errors.Add("Invalid QuoteId.");
                    }

                    var quote = quoteBl.GetQuoteByClientIDAndQuoteID(clientID, strQuoteId);

                    bool isNewQuote;
                    if (quote == null)
                    {
                        // Create a new opportunity
                        quote      = new QuoteDto();
                        isNewQuote = true;
                    }
                    else
                    {
                        isNewQuote = false;
                    }

                    // Copy the fields to the opportunity
                    var type = quote.GetType();
                    //loop over the rows mapping the database field with the corresponding field on the CRM
                    foreach (var mappingObject in DatabaseToCRMMap)
                    {
                        var propertyInfo = type.GetProperty(mappingObject.CRMField);
                        if (propertyInfo != null)
                        {
                            if (row[mappingObject.SdaField] != DBNull.Value)
                            {
                                utilityBl.SetProperty(quote, propertyInfo,
                                                      row[mappingObject.SdaField]);
                            }
                        }
                    }

                    if (isNewQuote)
                    {
                        recordsSdaAdd.Add(quote);
                    }
                    else
                    {
                        recordsSdaUpdate.Add(quote);
                    }
                }

                // Update the list of opportunities on Salesforce
                response = new Response();
                Response responseUpdate = quoteBl.UpdateSdaCloudQuote(recordsSdaUpdate);
                Response responseAdd    = quoteBl.AddSdaCloudQuote(recordsSdaAdd);

                // Merge both results
                foreach (string result in responseUpdate.Results)
                {
                    response.Results.Add(result);
                }
                foreach (string result in responseAdd.Results)
                {
                    response.Results.Add(result);
                }
                //Merge both errors
                foreach (string error in responseUpdate.Errors)
                {
                    response.Errors.Add(error);
                }
                foreach (string error in responseAdd.Errors)
                {
                    response.Errors.Add(error);
                }
            }
            catch (Exception ex)
            {
                response.Errors.Add(ex.Message);
            }

            return(response);
        }
        private void DependetQuestionState(SurveyResponse surveyResponse, UtilityBL.SectionType sectionType)
        {
            foreach (var section in surveyResponse.SurveyTitle.SurveySections.Where(s => s.SectionTypeId == (int)sectionType))
            {
                foreach (var question in section.Questions)
                {                    
                    var ctrl = "ctrl" + question.QuestionId.ToString();
                    dynamic rdbList = new RadioButtonList(); 
                    if (question.QuestionTypeId == 1)
                    {
                        rdbList = Form.FindControl(ctrl) as RadioButtonList;
                    }

                    if (question.QuestionTypeId == 2)
                    {
                        rdbList = Form.FindControl(ctrl) as CheckBoxList;
                    }
                  
                    if (question.QuestionsDependent != null && question.QuestionsDependent.Count > 0)
                    {
                        foreach (var dependent in question.QuestionsDependent)
                        {
                            var divId = "divQuestion" + dependent.QuestionId.ToString();
                            var div = Form.FindControl(divId);
                            rdbList.Attributes.Add("onclick", "JavaScript: radioButtonListOnClick(this,'" + divId + "','" + dependent.EnabledValue + "');");
                        }
                    }                   
                    
                }
            }

        }
        private void SaveSelection(SurveyResponse surveyResponse,  UtilityBL.SectionType sectionType)
        {
           foreach (var section in surveyResponse.SurveyTitle.SurveySections.Where(s => s.SectionTypeId == (int)sectionType))
            {
                foreach (var question in section.Questions)
                {
                    int responseValue;
                    string responseText;
                    var ctrl = "ctrl" + question.QuestionId.ToString();

                    if (question.QuestionTypeId == 1)
                    {
                        var rdbList = Form.FindControl(ctrl) as RadioButtonList;
                        if (rdbList.SelectedValue != "" && rdbList.Enabled)
                        {
                            responseValue = Convert.ToInt32(rdbList.SelectedValue);
                            responseText = rdbList.SelectedItem.Text;

                            var answer = new QuestionResponse
                            {
                                QuestionId = question.QuestionId,
                                QuestionOptionId = responseValue,
                                ResponseText = responseText,
                                SurveyResponseId = surveyResponse.SurveyResponseId,
                            };

                            _db.QuestionResponses.Add(answer);
                            _db.SaveChanges();
                        }
                    }

                    if (question.QuestionTypeId == 2)
                    {
                        var chkList = Form.FindControl(ctrl) as CheckBoxList;
                        foreach (ListItem item in chkList.Items)
                        {
                            if (item.Selected)
                            {
                                responseValue = Convert.ToInt32(item.Value);
                                responseText = item.Text;

                                var answer = new QuestionResponse
                                {
                                    QuestionId = question.QuestionId,
                                    QuestionOptionId = responseValue,
                                    ResponseText = responseText,
                                    SurveyResponseId = surveyResponse.SurveyResponseId,
                                };

                                _db.QuestionResponses.Add(answer);
                                _db.SaveChanges();
                            }
                        }
                    }

                    if (question.QuestionTypeId == 3)
                    {
                        var txtBox = Form.FindControl(ctrl) as TextBox;
                        responseText = txtBox.Text;

                        var answer = new QuestionResponse
                        {
                            QuestionId = question.QuestionId,
                            ResponseText = responseText,
                            SurveyResponseId = surveyResponse.SurveyResponseId,
                        };

                        _db.QuestionResponses.Add(answer);
                        _db.SaveChanges();
                    }
                }
            }

        }
        private void PopulateSurvey(SurveyResponse response, UtilityBL.Mode mode)
        {
            var survey = response.SurveyTitle;

            if (survey == null)
            {
                lblSurveyTitle.Text = "Invalid Survey";
                return;
            }
            lblSurveyTitle.Text = survey.SurveyTitle1;
            lblSurveyDescription.Text = survey.Description;

            var score = 0;
            var hasAnswers = false;
            if (response.QuestionResponses.Any())
                hasAnswers = true;

            foreach (var section in survey.SurveySections)
            {

                var divSection = new HtmlGenericControl("div");
                divSection.Attributes.Add("id", "divSection" + section.SurveySectionId.ToString());
                divSection.Attributes.Add("class", "panel panel-info");

                if (section.SectionTypeId == (int)UtilityBL.SectionType.Doctor)
                {
                    if (mode != UtilityBL.Mode.Entry)
                        pnlDoctorSection.Controls.Add(divSection);
                    else
                        continue;
                }
                else
                    Panel1.Controls.Add(divSection);

                var divSectionTitle = new HtmlGenericControl("div");
                divSectionTitle.Attributes.Add("id", "divSectionTitle" + section.SurveySectionId.ToString());
                divSectionTitle.Attributes.Add("class", "panel-heading");
                divSection.Controls.Add(divSectionTitle);

                if (section.DisplaySectionHeader && !string.IsNullOrEmpty(section.SurveySectionTtile))
                {
                    var lblSectionTitle = new Label();
                    lblSectionTitle.Text = section.SurveySectionTtile;
                    lblSectionTitle.Font.Bold = true;
                    lblSectionTitle.Font.Size = FontUnit.Large;
                    divSectionTitle.Controls.Add(lblSectionTitle);

                    if (!string.IsNullOrEmpty(section.SurveySectionDesc))
                    {
                        var sectionPara = new HtmlGenericControl("p");
                        sectionPara.Attributes.Add("id", "p" + section.SurveySectionId.ToString());
                        divSectionTitle.Controls.Add(sectionPara);

                        var lblSectionDescription = new Label();
                        lblSectionDescription.Text = section.SurveySectionDesc;
                        lblSectionDescription.Font.Size = FontUnit.Small;
                        sectionPara.Controls.Add(lblSectionDescription);
                    }
                }

                var divSectionBody = new HtmlGenericControl("div");
                divSectionBody.Attributes.Add("id", "divSectionBody" + section.SurveySectionId.ToString());
                divSectionBody.Attributes.Add("class", "panel-body");
                divSection.Controls.Add(divSectionBody);

                foreach (var q in section.Questions)
                {
                    var divQuestion = new HtmlGenericControl("div");
                    divQuestion.Attributes.Add("id", "divQuestion" + q.QuestionId.ToString());
                    divQuestion.Attributes.Add("class", "panel panel-default");
                    divSectionBody.Controls.Add(divQuestion);

                    var divQuestionTitle = new HtmlGenericControl("div");
                    divQuestionTitle.Attributes.Add("id", "divQuestionTitle" + q.QuestionId.ToString());
                    divQuestionTitle.Attributes.Add("class", "panel-heading");
                    divQuestion.Controls.Add(divQuestionTitle);


                    var lblQuestion = new Label();
                    lblQuestion.Text = q.Question1;
                    lblQuestion.ID = "lblQuestion" + q.QuestionId.ToString();
                    lblQuestion.Font.Bold = true;
                    divQuestionTitle.Controls.Add(lblQuestion);

                    var divQuestionBody = new HtmlGenericControl("div");
                    divQuestionBody.Attributes.Add("class", "panel-body");
                    divQuestionBody.Attributes.Add("id", "divQuestionBody" + q.QuestionId.ToString());
                    divQuestion.Controls.Add(divQuestionBody);

                    if (q.QuestionTypeId == 1)
                    {
                        var rdbList = new RadioButtonList();
                        rdbList.ID = "ctrl" + q.QuestionId.ToString();
                        rdbList.DataTextField = "QuestionOption1";
                        rdbList.DataValueField = "QuestionOptionId";
                        rdbList.DataSource = q.QuestionOptions;
                        rdbList.DataBind();
                        rdbList.Attributes.Add("class", "radio radiobuttonlist");

                        if (hasAnswers)
                        {
                            var answr = q.QuestionResponses.FirstOrDefault(r => r.SurveyResponse.SurveyResponseId == response.SurveyResponseId);
                            if (answr != null)
                                rdbList.SelectedValue = answr.QuestionOptionId.ToString();
                        }

                        if (q.DependentonQuestion != null)
                        {
                            var parentAnswer = q.DependentonQuestion.QuestionResponses.FirstOrDefault(r => r.SurveyResponse.SurveyResponseId == response.SurveyResponseId);
                            if (parentAnswer == null || q.EnabledValue != parentAnswer.ResponseText)
                            {
                                foreach (ListItem radio in rdbList.Items)
                                    radio.Enabled = false;
                            }
                        }
                            
                        divQuestionBody.Controls.Add(rdbList);
                    }

                    else if (q.QuestionTypeId == 2)
                    {
                        var chkList = new CheckBoxList();
                        chkList.ID = "ctrl" + q.QuestionId.ToString();
                        chkList.DataTextField = "QuestionOption1";
                        chkList.DataValueField = "QuestionOptionId";
                        chkList.DataSource = q.QuestionOptions;
                        chkList.DataBind();
                        chkList.Attributes.Add("class", "checkbox checked-list-box");

                        if (hasAnswers)
                        {
                            foreach (ListItem item in chkList.Items)
                            {
                                if (q.QuestionResponses.Any(r => r.QuestionOptionId == Convert.ToInt32(item.Value) && r.SurveyResponse.SurveyResponseId == response.SurveyResponseId))
                                {
                                    item.Selected = true;
                                    var qOption = q.QuestionOptions.FirstOrDefault(o => o.QuestionOptionId == Convert.ToInt32(item.Value));
                                }
                            }
                        }

                        if (q.DependentonQuestion != null)
                            chkList.Attributes.Add("disabled", "disabled");

                        divQuestionBody.Controls.Add(chkList);
                    }

                    if (q.QuestionTypeId == 3)
                    {
                        var txt = new TextBox();
                        txt.ID = "ctrl" + q.QuestionId.ToString();
                        txt.Attributes.Add("class", "form-control input-md col-md-10");
                        txt.Attributes.Add("style", "width:80%; max-width:700px;");

                        if (hasAnswers)
                        {
                            var answr = q.QuestionResponses.FirstOrDefault(r => r.SurveyResponse.SurveyResponseId == response.SurveyResponseId);
                            if (answr != null)
                                txt.Text = answr.ResponseText;
                        }

                        if (mode == UtilityBL.Mode.ViewMode || mode == UtilityBL.Mode.ApproveMode)
                            txt.ReadOnly = true;

                        if (q.DependentonQuestion != null)
                            txt.Attributes.Add("disabled", "disabled");

                        divQuestionBody.Controls.Add(txt);
                    }
                }
            }
            if ((mode == UtilityBL.Mode.ViewMode || mode == UtilityBL.Mode.ApproveMode)
                && survey.SurveySections.Any(s => s.Questions.Any(q => q.QuestionOptions.Sum(o => o.Value ?? 0) > 0)))
            {
                score = response.QuestionResponses.Where(x => x.Question.SurveySection.SectionTypeId == (int)UtilityBL.SectionType.Patient)
                                            .Select(s => s.QuestionOption.Value).Sum(r => r.Value);

                var interpretation = _db.InterpretationDetails.FirstOrDefault(d => d.SurveyInterpretation.SurveyTitleId == response.SurveyTitleId
                                                                && d.ScoreRangeStart >= score && score <= d.ScoreRangeEnd);

                if (interpretation != null)
                {
                    pnlSurveyInterpretation.Visible = true;

                    lblScore.Text = score.ToString();
                    lblResult.Text = interpretation.Result;

                    if (!string.IsNullOrEmpty(interpretation.Action))
                        lblAction.Text = interpretation.Action;
                    else
                        lblACtionCaption.Visible = false;
                }
            }

            if (mode == UtilityBL.Mode.ApproveMode)
                DependetQuestionState(response, UtilityBL.SectionType.Doctor);
            else if (mode == UtilityBL.Mode.Entry)
                DependetQuestionState(response, UtilityBL.SectionType.Patient);
        }       
Exemple #17
0
        public bool SaveBuyerRequestMobile(string BuyerEmail, string BuyerCity,
                                           string BuyerPhone, string BuyerFirstName, string BuyerLastName, string BuyerComments,
                                           string IpAddress, string Sellerphone, string Sellerprice, string Carid,
                                           string sYear, string Make, string Model, string price, string RequestType, string ToEmail)
        {
            string spNameString = string.Empty;
            bool   bsucess      = false;
            //Setting Connection
            //Global.INSTANCE_NAME = strCurrentConn;

            IDataReader ModelsInfoDataReader = null;


            //Connect to the database
            Database dbDatabase = DatabaseFactory.CreateDatabase(Global.INSTANCE_NAME);

            //Assign stored procedure name

            spNameString = "[USP_Save_BuyerRequest]";
            DbCommand dbCommand = null;

            try
            {
                //Set stored procedure to the command object
                dbCommand = dbDatabase.GetStoredProcCommand(spNameString);

                dbDatabase.AddInParameter(dbCommand, "@BuyerEmail", DbType.String, BuyerEmail);
                dbDatabase.AddInParameter(dbCommand, "@BuyerCity", DbType.String, BuyerCity);
                dbDatabase.AddInParameter(dbCommand, "@BuyerPhone", DbType.String, BuyerPhone);
                dbDatabase.AddInParameter(dbCommand, "@BuyerFirstName", DbType.String, BuyerFirstName);
                dbDatabase.AddInParameter(dbCommand, "@BuyerLastName", DbType.String, BuyerLastName);
                dbDatabase.AddInParameter(dbCommand, "@BuyerComments", DbType.String, BuyerComments);
                dbDatabase.AddInParameter(dbCommand, "@IpAddress", DbType.String, IpAddress);
                dbDatabase.AddInParameter(dbCommand, "@Sellerphone", DbType.String, Sellerphone);
                dbDatabase.AddInParameter(dbCommand, "@Sellerprice", DbType.String, Sellerprice);
                dbDatabase.AddInParameter(dbCommand, "@Carid", DbType.String, Carid);
                dbDatabase.AddInParameter(dbCommand, "@RequestType", DbType.String, RequestType);


                //Executing stored procedure
                dbDatabase.ExecuteNonQuery(dbCommand);


                string strMailFormat = string.Empty;

                StringBuilder sbQuery;
                string        line;

                string SalesMailFile = System.Web.Hosting.HostingEnvironment.MapPath("~/MailTemplate/SellarRequest.txt");

                StreamReader objStreamReader;

                objStreamReader = File.OpenText(SalesMailFile);

                sbQuery = new StringBuilder();

                while ((line = objStreamReader.ReadLine()) != null)
                {
                    string strMail = string.Empty;

                    strMail = line + "<br />";

                    if (line.Contains("###SellarName###"))
                    {
                        if (strMail == "")
                        {
                            strMail = line.Replace("###SellarName###", BuyerFirstName);
                        }
                        else
                        {
                            strMail = strMail.Replace("###SellarName###", BuyerFirstName);
                        }
                    }

                    if (line.Contains("###Phone###"))
                    {
                        if (strMail == "")
                        {
                            strMail = line.Replace("###Phone###", BuyerPhone);
                        }
                        else
                        {
                            strMail = strMail.Replace("###Phone###", BuyerPhone);
                        }
                    }
                    if (line.Contains("###Email###"))
                    {
                        if (strMail == "")
                        {
                            strMail += line.Replace("###Email###", BuyerEmail);
                        }
                        else
                        {
                            strMail = strMail.Replace("###Email###", BuyerEmail);
                        }
                    }
                    if (line.Contains("###Year###"))
                    {
                        if (strMail == "")
                        {
                            strMail += line.Replace("###Year###", sYear);
                        }
                        else
                        {
                            strMail = strMail.Replace("###Year###", sYear);
                        }
                    }



                    if (line.Contains("###Make###"))
                    {
                        if (strMail == "")
                        {
                            strMail += line.Replace("###Make###", Make);
                        }
                        else
                        {
                            strMail = strMail.Replace("###Make###", Make);
                        }
                    }
                    if (line.Contains("###Model###"))
                    {
                        if (strMail == "")
                        {
                            strMail += line.Replace("###Model###", Model);
                        }
                        else
                        {
                            strMail = strMail.Replace("###Model###", Model);
                        }
                    }
                    if (line.Contains("###price###"))
                    {
                        if (strMail == "")
                        {
                            strMail += line.Replace("###price###", price);
                        }
                        else
                        {
                            strMail = strMail.Replace("###price###", price);
                        }
                    }
                    if (line.Contains("###Comments###"))
                    {
                        if (strMail == "")
                        {
                            strMail = line.Replace("###Comments###", BuyerComments);
                        }
                        else
                        {
                            strMail = strMail.Replace("###Comments###", BuyerComments);
                        }
                    }
                    if (line.Contains("###firstName###"))
                    {
                        if (strMail == "")
                        {
                            strMail = line.Replace("###firstName###", BuyerFirstName);
                        }
                        else
                        {
                            strMail = strMail.Replace("###firstName###", BuyerFirstName);
                        }
                    }
                    if (line.Contains("###lastName###"))
                    {
                        if (strMail == "")
                        {
                            strMail = line.Replace("###lastName###", BuyerLastName);
                        }
                        else
                        {
                            strMail = strMail.Replace("###lastName###", BuyerLastName);
                        }
                    }

                    if (line.Contains("###City###"))
                    {
                        if (strMail == "")
                        {
                            strMail = line.Replace("###City###", BuyerCity);
                        }
                        else
                        {
                            strMail = strMail.Replace("###City###", BuyerCity);
                        }
                    }


                    strMailFormat = strMailFormat + strMail;
                }
                UtilityBL objUtility = new UtilityBL();
                if (BuyerEmail == "")
                {
                    BuyerEmail = "*****@*****.**";
                }

                objUtility.SendMail("127.0.0.1", BuyerEmail, ToEmail, "Regarding Buyer request", strMailFormat);


                bsucess = true;
            }
            catch (Exception ex)
            {
                bool rethrow = ExceptionPolicy.HandleException(ex, Global.EXCEPTION_POLICY);

                if (rethrow)
                {
                    throw;
                }
            }

            return(bsucess);
        }
Exemple #18
0
        public string SaveAddPackageRequest(string UID, string CustomerID, string AuthenticationID)
        {
            Database dbDatabase = DatabaseFactory.CreateDatabase(Global.INSTANCE_NAME);
               string bsucess = "Failure";
               DbCommand dbCommand = null;
               DataSet ds = new DataSet();
               string spString = string.Empty;
               try
               {
               spString = "USP_AddPackageMobileRequest";
               dbCommand = dbDatabase.GetStoredProcCommand(spString);
               dbDatabase.AddInParameter(dbCommand, "@UID", DbType.Int32, UID);
               dbDatabase.AddInParameter(dbCommand, "@CustomerID", DbType.String, CustomerID);
               dbDatabase.AddInParameter(dbCommand, "@AuthenticationID", DbType.String, AuthenticationID);
               ds=dbDatabase.ExecuteDataSet(dbCommand);

               if (ds.Tables[0].Rows.Count > 0)
               {
                   string CustomerName = ds.Tables[0].Rows[0]["Name"].ToString();
                   string Email = ds.Tables[0].Rows[0]["UserName"].ToString();
                   string phone = ds.Tables[0].Rows[0]["PhoneNumber"].ToString();

                   string strMailFormat = string.Empty;

                   StringBuilder sbQuery;
                   string line;

                   string SalesMailFile = System.Web.Hosting.HostingEnvironment.MapPath("~/MailTemplate/AddPackageRequest.txt");

                   StreamReader objStreamReader;

                   objStreamReader = File.OpenText(SalesMailFile);

                   sbQuery = new StringBuilder();

                   while ((line = objStreamReader.ReadLine()) != null)
                   {
                       string strMail = string.Empty;

                       strMail = line + "<br />";

                       if (line.Contains("###Cusname###"))
                       {
                           strMail = line.Replace("###Cusname###", CustomerName) + "<br />";
                       }
                       else if (line.Contains("###Phone###"))
                       {
                           strMail = line.Replace("###Phone###", phone) + "<br />";
                       }
                       else if (line.Contains("###Email###"))
                       {
                           strMail = line.Replace("###Email###", Email) + "<br />";
                       }
                       strMailFormat = strMailFormat + strMail;
                   }
                   UtilityBL objUtility = new UtilityBL();
                   if (Email == "")
                   {
                       Email = "*****@*****.**";
                   }
                   string ToEmail = "*****@*****.**";
                   objUtility.SendMail("127.0.0.1", Email, ToEmail, "Regarding add package request", strMailFormat);

               }
               bsucess = "Success";

               }
               catch (Exception ex)
               {
               }
               return bsucess;
        }
Exemple #19
0
        public Response RunUpdateCRMOpportunities(OpportunityDto opportunityDto)
        {
            // Initialise variables
            Response response = Authenticate(opportunityDto.LoginInfo);

            if (response.Errors.Count > 0)
            {
                return(response);
            }

            var opportunitiesToUpdate = opportunityDto.OpportunityTable;

            var xRefDef = opportunityDto.CRMXrefDefinition;

            CreateSqlAndMapper(xRefDef);

            try
            {
                var opportunityBL = new OpportunityBL();
                var utilityBl     = new UtilityBL();

                // Create a list of opportunities
                // mapping the values of the opportunity table with the ones on the Salesforce Opportunity object
                var recordsSdaUpdate = new List <OpportunityDto>();
                var recordsSdaAdd    = new List <OpportunityDto>();

                int crmClientId = -1;

                foreach (DataRow row in opportunitiesToUpdate.Rows)
                {
                    int clientID = -1;
                    if (row.Table.Columns.Contains("ClientID") && row["ClientID"] != DBNull.Value)
                    {
                        int.TryParse(row["ClientID"].ToString(), out clientID);
                        crmClientId = clientID;
                    }
                    else
                    {
                        response.Errors.Add("Invalid Client Id.");
                    }

                    var strCRMOppId = string.Empty;
                    if (row.Table.Columns.Contains("CRMOppID") && row["CRMOppID"] != DBNull.Value)
                    {
                        strCRMOppId = row["CRMOppID"].ToString();
                    }

                    List <OppStatusDto> lstat = utilityBl.GetStatuses(clientID);
                    bool hasStatus            = false;
                    if (row.Table.Columns.Contains("OppStatus") && row["OppStatus"] != DBNull.Value)
                    {
                        var strStatus = row["OppStatus"].ToString();
                        int statValue = 0;
                        foreach (var stat in lstat)
                        {
                            if (stat.OppStatus.ToLower().Trim().Equals(strStatus.ToLower().Trim()))
                            {
                                statValue = stat.ID;
                                break;
                            }
                        }

                        if (statValue > 0)
                        {
                            row["OppStatus"] = statValue;
                            hasStatus        = true;
                        }
                    }

                    if (!hasStatus)
                    {
                        if (lstat.Count > 0)
                        {
                            var defaultStatus = lstat.Where(s => s.Default.Equals("Y")).FirstOrDefault();
                            if (defaultStatus != null)
                            {
                                row["OppStatus"] = defaultStatus.ID;
                                hasStatus        = true;
                            }
                        }

                        if (!hasStatus)
                        {
                            response.Errors.Add("Invalid Opp Status.");
                        }
                    }


                    OpportunityDto opportunity = null;
                    if (!string.IsNullOrEmpty(strCRMOppId))
                    {
                        opportunity = opportunityBL.GetOpportunityByClientIDAndCRMOppID(clientID, strCRMOppId);
                    }

                    bool isNewOpportunity;
                    if (opportunity == null)
                    {
                        // Create a new opportunity
                        opportunity      = new OpportunityDto();
                        isNewOpportunity = true;
                    }
                    else
                    {
                        isNewOpportunity = false;
                    }

                    // Copy the fields to the opportunity
                    var type = opportunity.GetType();
                    //loop over the rows mapping the database field with the corresponding field on the CRM
                    foreach (var mappingObject in DatabaseToCRMMap)
                    {
                        var propertyInfo = type.GetProperty(mappingObject.CRMField);
                        if (propertyInfo != null)
                        {
                            if (row[mappingObject.SdaField] != DBNull.Value)
                            {
                                utilityBl.SetProperty(opportunity, propertyInfo,
                                                      row[mappingObject.SdaField]);
                            }
                        }
                    }

                    if (isNewOpportunity)
                    {
                        recordsSdaAdd.Add(opportunity);
                    }
                    else
                    {
                        recordsSdaUpdate.Add(opportunity);
                    }
                }

                // Update the list of opportunities on Salesforce
                response = new Response();
                Response responseUpdate = opportunityBL.UpdateSdaCloudOpportunity(recordsSdaUpdate);
                Response responseAdd    = opportunityBL.AddSdaCloudOpportunity(recordsSdaAdd);

                // Merge both results
                foreach (string result in responseUpdate.Results)
                {
                    response.Results.Add(result);
                }
                foreach (string result in responseAdd.Results)
                {
                    response.Results.Add(result);
                }
                //Merge both errors
                foreach (string error in responseUpdate.Errors)
                {
                    response.Errors.Add(error);
                }
                foreach (string error in responseAdd.Errors)
                {
                    response.Errors.Add(error);
                }
            }
            catch (Exception ex)
            {
                response.Errors.Add(ex.Message);
                if (ex.InnerException != null)
                {
                    response.Errors.Add(ex.InnerException.Message);
                }
            }
            return(response);
        }
        public MobileItemDetails GetItemDetails(MobileItemRequestDetails mobileItemRequestDetails)
        {
            string            message           = string.Empty;
            string            status            = string.Empty;
            bool              isValidVersion    = true;
            MobileItemDetails mobileItemDetails = new MobileItemDetails();

            try
            {
                using (StageBitzDB dataContext = new StageBitzDB())
                {
                    isValidVersion = Helper.IsValidAppVersion(mobileItemRequestDetails.Version, out status);
                    if (isValidVersion)
                    {
                        //Check the user security
                        int userId = int.Parse(Utils.DecryptStringAES(mobileItemRequestDetails.Token));

                        if (Utils.CanAccessInventory(mobileItemRequestDetails.CompanyId, userId))
                        {
                            Item item = dataContext.Items.Where(i => i.ItemId == mobileItemRequestDetails.ItemId).FirstOrDefault();
                            if (item != null)
                            {
                                InventoryBL inventoryBL = new InventoryBL(dataContext);
                                mobileItemDetails.ItemId      = item.ItemId;
                                mobileItemDetails.Status      = "OK";
                                mobileItemDetails.Name        = item.Name;
                                mobileItemDetails.ItemTypeId  = item.ItemTypeId.HasValue ? item.ItemTypeId.Value : 0;
                                mobileItemDetails.Description = item.Description;
                                mobileItemDetails.Quantity    = item.Quantity.HasValue ? item.Quantity.Value : 0;
                                mobileItemDetails.CanEditItem = inventoryBL.GetItemStatusInformationForUser(item, mobileItemRequestDetails.CompanyId, userId).IsReadOnly ? 0 : 1;
                                //Get Item Status
                                mobileItemDetails.ItemStatus = inventoryBL.GetItemStatus(item.ItemId);

                                mobileItemDetails.LastUpdatedDate = item.LastUpdatedDate.HasValue ? item.LastUpdatedDate.Value : item.CreatedDate.Value;
                                UtilityBL utilityBL = new UtilityBL(dataContext);

                                var medias = utilityBL.GetDocumentMedias("Item", item.ItemId, true, null);
                                if (medias.Count > 0)
                                {
                                    var docMediaIdList = medias.OrderByDescending(m => m.SortOrder).ThenBy(m => m.DocumentMediaId).Select(m => m.DocumentMediaId).ToList <int>();
                                    mobileItemDetails.DocumentMediaIdList = docMediaIdList;
                                }
                            }
                            else
                            {
                                mobileItemDetails.Status  = "NOTOK";
                                mobileItemDetails.Message = "Item not exist.";
                            }
                        }
                        else
                        {
                            mobileItemDetails.Status  = "NOTOK";
                            mobileItemDetails.Message = "Check settings with Company Administrator.";
                        }
                    }
                    else
                    {
                        mobileItemDetails.Status  = "NOTOK";
                        mobileItemDetails.Message = "Please update App.";
                    }
                }
            }
            catch (Exception ex)
            {
                AgentErrorLog.HandleException(ex);
                mobileItemDetails.Status  = "ERROR";
                mobileItemDetails.Message = "Oops! Unkown error. Sorry...";
            }
            return(mobileItemDetails);
        }