public Response SaveDataInDynamoDb(PositionData positionData)
 {
     try
     {
         if (null == Table)
         {
             return(new Response(false, "Table not Found"));
         }
         var Positiontaskname = Table.GetItem(positionData.PositionLabel);
         if (null == Positiontaskname)
         {
             string   jsonText = JsonConvert.SerializeObject(positionData);
             var      item     = Document.FromJson(jsonText);
             Document response = Table.PutItem(item);
         }
         else
         {
             string   jsonText = JsonConvert.SerializeObject(positionData);
             Document item     = Document.FromJson(jsonText);
             Document response = Table.UpdateItem(item);
         }
         return(new Response(true, "Table updated"));
     }
     catch (Exception exception)
     {
         Console.WriteLine(exception.Message);
         return(new Response(false, exception.Message));
     }
 }
 internal PositionData ConvertToLowerCase(PositionData PositionData)
 {
     PositionData.PositionLabel = PositionData.PositionLabel.ToLower();
     if (null != PositionData.PositionWebsite)
     {
         PositionData.PositionWebsite = PositionData.PositionWebsite.ToLower();
     }
     PositionData.Status = PositionData.Status.ToLower();
     return(PositionData);
 }
        internal PositionData ConvertToTitleCase(PositionData PositionData)
        {
            TextInfo textInfo = new CultureInfo("en-US", false).TextInfo;

            PositionData.PositionLabel = textInfo.ToTitleCase(PositionData.PositionLabel);
            if (null != PositionData.PositionWebsite)
            {
                PositionData.PositionWebsite = textInfo.ToTitleCase(PositionData.PositionWebsite);
            }
            PositionData.Status = textInfo.ToTitleCase(PositionData.Status);
            return(PositionData);
        }
        public Response UpdateDataInDynamoDb(PositionData positionData)
        {
            try
            {
                if (null == Table)
                {
                    return(new Response(false, "Table not Found"));
                }
                Response     _response     = GetDataInDynamoDb(positionData.PositionLabel);
                PositionData _positionData = CreateSingleUpdatedObject(_response.PositionData, positionData);

                string   jsonText = JsonConvert.SerializeObject(_positionData);
                Document item     = Document.FromJson(jsonText);
                Document response = Table.UpdateItem(item);
                return(new Response(true, "Table updated"));
            }
            catch (Exception exception)
            {
                Console.WriteLine(exception.Message);
                return(new Response(false, exception.Message));
            }
        }
        private List <PositionData> CovertresponseIntoJSON(ScanResponse response)
        {
            List <Dictionary <string, AttributeValue> > result = response.Items;
            List <PositionData> positionList = new List <PositionData>();
            PositionData        position     = new PositionData();

            foreach (Dictionary <string, AttributeValue> items in result)
            {
                List <string> listofselectedIdentities = new List <string>();
                List <string> listofTasks        = new List <string>();
                List <string> listofCountries    = new List <string>();
                List <string> tasklistHistory    = new List <string>();
                Dictionary <string, string> item = new Dictionary <string, string>();
                foreach (var val in items)
                {
                    if (val.Key == "SelectedIdentities")
                    {
                        foreach (var web in val.Value.L)
                        {
                            if (!listofselectedIdentities.Contains(web.S))
                            {
                                listofselectedIdentities.Add(web.S);
                            }
                        }
                    }
                    if (val.Key == "SelectTasks")
                    {
                        foreach (var web in val.Value.L)
                        {
                            if (!listofTasks.Contains(web.S))
                            {
                                listofTasks.Add(web.S);
                            }
                        }
                    }
                    if (val.Key == "SelectCountries")
                    {
                        foreach (var web in val.Value.L)
                        {
                            if (!listofCountries.Contains(web.S))
                            {
                                listofCountries.Add(web.S);
                            }
                        }
                    }
                    if (val.Key == "TasksHistoryList")
                    {
                        foreach (var web in val.Value.L)
                        {
                            if (!tasklistHistory.Contains(web.S))
                            {
                                tasklistHistory.Add(web.S);
                            }
                        }
                    }
                    item.Add(val.Key, val.Value.S);
                }
                string jsonString = JsonConvert.SerializeObject(item, Formatting.Indented);
                position = JsonConvert.DeserializeObject <PositionData>(jsonString);
                position.SelectedIdentities = listofselectedIdentities;
                position.SelectTasks        = listofTasks;
                position.TasksHistoryList   = tasklistHistory;
                position.SelectCountries    = listofCountries;
                positionList.Add(position);
            }
            return(positionList);
        }
        private PositionData CreateSingleUpdatedObject(List <PositionData> GetpositionData, PositionData SetpositionData)
        {
            SetpositionData.PositionLabel   = GetpositionData.FirstOrDefault().PositionLabel;
            SetpositionData.PositionWebsite = GetpositionData.FirstOrDefault().PositionWebsite;
            SetpositionData.SelectCountries = GetpositionData.FirstOrDefault().SelectCountries;
            SetpositionData.SelectSelection = GetpositionData.FirstOrDefault().SelectSelection;
            SetpositionData.StartDate       = GetpositionData.FirstOrDefault().StartDate;
            SetpositionData.StartTime       = GetpositionData.FirstOrDefault().StartTime;
            SetpositionData.EndDate         = GetpositionData.FirstOrDefault().EndDate;
            SetpositionData.EndTime         = GetpositionData.FirstOrDefault().EndTime;
            SetpositionData.TotalDateTime   = GetpositionData.FirstOrDefault().TotalDateTime;
            if (0 < GetpositionData.FirstOrDefault().TasksHistoryList.Count)
            {
                SetpositionData.TasksHistoryList = GetpositionData.FirstOrDefault().TasksHistoryList;
            }

            if (null == SetpositionData.SelectTasks || 0 == SetpositionData.SelectTasks.Count)
            {
                SetpositionData.SelectTasks = GetpositionData.FirstOrDefault().SelectTasks;
            }
            if (null != SetpositionData.SelectTasks && 0 < SetpositionData.SelectTasks.Count)
            {
                List <string> tempHistoryList = new List <string>();
                tempHistoryList = GetpositionData.FirstOrDefault().TasksHistoryList;
                string value = null;
                foreach (var taskssteps in SetpositionData.SelectTasks)
                {
                    value += taskssteps;
                    value += "@";
                }
                value += "TotalPLV: " + SetpositionData.TotalPLV;
                value += "@";
                value += "AveragePLV: " + SetpositionData.AveragePLV;
                value  = value.Replace("@", "@" + System.Environment.NewLine);
                tempHistoryList.Add(value);
                SetpositionData.TasksHistoryList = tempHistoryList;
            }


            if (null == SetpositionData.Note)
            {
                SetpositionData.Note = GetpositionData.FirstOrDefault().Note;
            }
            return(SetpositionData);
        }